Фотография к материалу «Отладка и диагностика»Фото: cottonbro studio / Pexels
← Все подборки Маршрут Bashdays

Отладка и диагностика

Разбор проблем, логи, strace, core dump, контрольные суммы, производительность и расследования.

debugотладкадиагностикаstracecore dumpлогиlogsless
117 материалов в подборке
О подборке

Материалы для случаев, когда что-то сломалось, тормозит или ведет себя подозрительно.

Сначала новые

Материалы маршрута

Материалов: 117

bash

Почему нельзя перезаписывать файл через sed и редирект

Команда cat file | sed ... > file обнуляет исходный файл до начала чтения. Показываем опасный пример, результат и замену через временный файл с последующим mv, а также альтернативный вариант с ed.

Фото: Mikhail Nilov / Pexels
bash

Как Bash загружает функции через source

Проверяем через strace, перечитывает ли Bash подключённый файл при каждом вызове функции. Минимальный эксперимент показывает обращения openat и подтверждает, что source загружает файл один раз на запуск скрипта.

Фото: Daniil Komov / Pexels
linux

Как открыть файл на нужной строке

Команды mcedit, less, nano и vim умеют сразу переходить к нужной строке файла. Собираем тестовый файл и сравниваем синтаксис запуска четырёх консольных редакторов и просмотрщиков.

Фото: Daniil Komov / Pexels
bash

Как собрать все логи в один поток

Простой Bash-скрипт объединяет обычные и сжатые логи в правильном порядке и выводит их в stdout. Разбираем выбор между cat и zcat, сортировку файлов и дальнейшую обработку через grep, awk или sed.

Фото: Rafael Minguet Delgado / Pexels
linux

Как файловый менеджер определяет тип файла

Проверяем через strace, как Nautilus определяет тип файла по расширению или содержимому. Создаём файл с сигнатурой BZ2, наблюдаем системные вызовы openat и read, а затем сравниваем поведение после добавления расширения txt.

Фото: Eva Bronzini / Pexels
devops

Почему proxy_pass в Nginx ломает путь к Flask

Разбираем, почему Flask возвращает Not Found при проксировании приложения через location /app в Nginx. На конкретной конфигурации показываем, как завершающий слэш в proxy_pass меняет путь запроса и устраняет ошибку маршрутизации.

Фото: Sérgio Souza / Pexels
linux

Как перехватить удаление временного файла через strace

Практический разбор отладки неизвестного бинарника через strace и инъекцию ошибки EACCES. Показываем, как остановить unlink, сохранить временный файл и найти гонку, из-за которой выгрузка становилась пустой.

Фото: Pavel Danilyuk / Pexels
debug

Почему chmod 777 в PHP превращается в 01411

Разбираем странные права 01411 после вызова chmod в PHP и доказываем источник ошибки через strace. На примерах показываем разницу между десятичным 777, строкой и корректным восьмеричным значением 0777.

Фото: Chengxin Zhao / Pexels
security

Как полностью отключить логирование в Linux

Экспериментируем с отключением системных журналов Linux, journald, rsyslog и истории Bash. Материал показывает, где остаются логи, какие побочные эффекты возникают и почему эти приёмы допустимы только в учебной среде.

Фото: Amorie Sam / Pexels
linux

locate и globbing для быстрого поиска файлов

Сравниваем locate и find, разбираемся с базой updatedb и ускоряем простой поиск файлов в Linux. На примере strace показываем, как globbing в Bash меняет аргументы команды и почему шаблоны нужно заключать в кавычки.

Фото: RDNE Stock project / Pexels
devops

Как не надо внедрять Kubernetes

История внедрения Kubernetes ради моды на примере корпоративного WordPress: быстрый старт, нестабильная база, инциденты и неизбежная переделка. Разбираем, почему оркестратор нужен не каждому проекту и как практический эксперимент …

Фото: Alex Levis / Pexels
devops

Как отлаживать Docker-контейнер, который не запускается

Собираем намеренно сломанный образ Nginx и последовательно отлаживаем Docker-контейнер, который сразу завершается. Используем docker ps, logs, inspect, exec, cp и dive, чтобы найти ошибку в конфигурации, проверить слои и …

Фото: Gustavo Fring / Pexels
workflow

Почему статус-кво мешает внедрять новые технологии

Разбираемся, почему пользователи и инженеры сопротивляются изменениям даже тогда, когда новое решение объективно эффективнее. На примерах технологий, продукта и A/B-тестов смотрим, когда статус-кво тормозит развитие, а когда …

Фото: James Wheeler / Pexels
bash

Как сделать комментарии Bash видимыми при отладке

Автор COLODEBUG предлагает использовать встроенную команду Bash : вместо обычного символа комментария #. Такой приём делает пояснения заметными в трассировке скрипта и помогает при отладке.

Фото: Markus Winkler / Pexels
devops

Полные логи Docker Build без перерисовки

Параметр --progress=plain отключает динамическую перерисовку вывода Docker BuildKit и сохраняет весь лог сборки на экране. То же поведение можно включить переменной окружения BUILDKIT_PROGRESS.

Фото: Samuel Wölfl / Pexels
devops

Как нельзя чистить логи MySQL в продакшене

История аварии MySQL после ручного удаления файлов из var/mysql без остановки базы. Разбираемся, почему ibdata1 нельзя принимать за обычный лог и как подобные действия превращают пятничный вечер в восстановление продакшена.

Фото: Kaboompics.com / Pexels
devops

Как восстановить Dockerfile из образа с Dedockify

Dedockify анализирует историю Docker-образа и формирует приближённый Dockerfile, сокращая ручную работу при реверсе контейнеров. Показываем запуск через Docker и удобный alias для повторного использования.

Фото: Ivan S / Pexels
linux

Как найти создаваемый файл с inotify-tools

inotify-tools позволяет в реальном времени увидеть, где приложение создаёт неизвестный файл. На практическом примере отслеживаем события каталога рекурсивно, находим выгрузку и разбираемся, когда пригодится incrond.

Фото: fall maple / Pexels
linux

Как узнать, какие файлы открывает программа через strace

Одна команда strace показывает файлы, которые программа открывает в домашнем каталоге. Практический приём помогает отлаживать приложения, находить используемые конфиги и при необходимости отслеживать операции записи.

Фото: Kader D. Kahraman / Pexels
linux

Как найти, что заняло диск, с помощью ncdu

ncdu помогает быстро найти каталоги и файлы, занявшие дисковое пространство на Linux-сервере. Разбираем запуск утилиты, навигацию по дереву размеров, удаление ненужных данных и установку в популярных системах.

Фото: Marta Branco / Pexels
devops

Как редирект с тестового сервера помог сломать прод

Тестовая админка после сохранения формы перенаправила авторизованного менеджера на основной домен. Разбираем, как незаметное переключение окружения привело к действиям на проде.

Фото: Benjamin Farren / Pexels
devops

Как сверить отпечаток SSH-ключа в GitLab

Команда ssh-keygen помогает понять, тот ли приватный SSH-ключ использует GitLab Runner. Получаем MD5-отпечаток, сравниваем его с GitLab или GitHub и исправляем ошибку доступа к приватному репозиторию.

Фото: Towfiqu barbhuiya / Pexels
security

Как SSH-ссылка раскрывает IP и логин

Подключение к чужому SSH-серверу может оставить в его логах не только IP, но и имя локального пользователя. Разбираем простой способ не раскрывать рабочий логин при проверке незнакомых SSH-ссылок.

Фото: COPPERTIST WU / Pexels
security

TOTP-коды в Vaultwarden

Vaultwarden умеет хранить ключ аутентификатора и генерировать одноразовые TOTP-коды рядом с логином и паролем. Показываем встроенную возможность на примере двухфакторной аутентификации Gitea.

Фото: Zulfugar Karimov / Pexels
linux

Двухлогинная защита SSH от мусора в логах

Идея двухлогинной схемы для SSH помогает отделить опасный перебор реальных учётных записей от фонового шума. Дополнительная часть логина также может показать, из какой группы произошла утечка.

Фото: CODE SAFE / Pexels
linux

Как найти настоящее имя systemd-сервиса

Если systemctl не находит ожидаемое имя сервиса, его можно восстановить по истории команд или списку юнитов. На примере PHP-FPM показываем быстрый поиск реального systemd unit без дополнительных утилит.

Фото: Budget Bizar / Pexels
networks

Как найти незарегистрированный IP в локальной сети

Практический разбор неизвестного IP-адреса в небольшой локальной сети с 1С. Используем ss, ping, nmap, arp, arping и временное правило iptables, чтобы определить реальное устройство и его пользователя.

Фото: Brett Sayles / Pexels
linux

local0–local7 для разделения логов

Разбираем syslog facility local0–local7 и отделяем логи приложений от системных сообщений auth, daemon, mail и kern. Показываем пример на Python, настройку rsyslog и практическую схему категорий.

Фото: Maria Orlova / Pexels
linux

MySQL без пароля через .my.cnf

Настраиваем подключение к MySQL без передачи логина и пароля в командной строке или Bash-скрипте. Используем файл ~/.my.cnf, секцию client, параметр --defaults-file и безопасные права доступа.

Фото: Dan Nelson / Pexels
bash

Лучшие посты Bashdays за октябрь 2023

Собрали самые просматриваемые, пересылаемые и обсуждаемые публикации Bashdays за октябрь 2023 года. В подборке Bash, Linux, chroot, strace, VIM, архиваторы и полезные shell-инструменты.

Фото: Tiger Lily / Pexels
linux

Почему 1С тормозит на PostgreSQL после обновления

После обновления конфигурации операции в 1С на PostgreSQL замедлились в несколько раз, тогда как MS SQL работает нормально. Разбираем исходные наблюдения, ограничения связки 1С с Linux и вопросы для диагностики.

Фото: Thirdman / Pexels
bash

tee и script для записи вывода терминала

Утилита tee одновременно показывает вывод команды на экране и записывает его в файл, а script сохраняет всю терминальную сессию. Разбираем простые команды для логирования вывода в реальном времени.

Фото: 도연 김 / Pexels
debug

Анализ ELF-бинарников с Binsider

Binsider — TUI-инструмент на Rust для статического и динамического анализа ELF-бинарников. Он показывает секции, сегменты, символы, релокации и hex-дамп, извлекает строки и отслеживает системные вызовы.

Фото: Julio Lopez / Pexels
devops

Как выбрать сильного DevOps-инженера

Авторская рекомендация DevOps-инженера с акцентом на самостоятельность, глубокий troubleshooting, документацию и умение быстро осваивать технологии. В стеке кандидата — Ansible, GitLab, Docker, HashiCorp, YAML и CI/CD pipeline.

Фото: Resume Genius / Pexels
devops

Автоматические бэкапы PostgreSQL с уведомлениями

Bash-скрипт для автоматического создания дампов PostgreSQL через pg_dump, логирования результата и отправки уведомлений в Telegram. Дополнительно настраиваем очистку старых файлов через find и cron.

Фото: Jakub Zerdzicki / Pexels
services

Интерактивная карта 400 тысяч GitHub-репозиториев

Map of GitHub превращает более 400 тысяч открытых репозиториев в интерактивную карту языков, технологий и фреймворков. Разбираемся, как устроены виртуальные страны Pythonia и Swiftoria, как генерировались их названия и зачем …

Фото: SpaceX / Pexels
linux

Как заменить last и lastb в Debian 13

В Debian 13 привычные команды last и lastb могут отсутствовать, но историю успешных и неудачных SSH-входов можно собрать через journalctl и gawk. Готовые команды формируют таблицу timestamp, IP и логина, поддерживают фильтр по …

Фото: Tima Miroshnichenko / Pexels
debug

Нумерация системных вызовов strace

Perl-скрипт автоматически нумерует системные вызовы в выводе strace и упрощает подготовку инъекций. Разбираем запуск через -o, цветовую подсветку, подсчёт openat и newfstatat и отделение трассировки stderr от вывода программы.

Фото: Daniil Komov / Pexels
linux

Как анализировать процессы Linux через pstree

Изучаем дерево процессов Linux с помощью pstree и разбираем ключи -c, -p и -a. Показываем объединение одинаковых ветвей, вывод PID и аргументов запуска, а также установку пакета psmisc в разных системах.

Фото: Luca Dross / Pexels
devops

Как восстановить Dockerfile из готового образа

Восстанавливаем логику сборки Docker-образа, когда исходный Dockerfile потерян или недоступен. Используем docker history и ключ --no-trunc, изучаем слои через Dive, извлекаем файлы командой docker cp и проверяем образ с помощью …

Фото: SpaceX / Pexels
linux

Как создавать домашние каталоги через /etc/skel

Настраиваем каталог /etc/skel как шаблон домашней директории нового пользователя Linux. Создаём структуру папок и конфигурационные файлы, используем альтернативный шаблон через useradd -k и меняем расположение домашнего каталога …

Фото: Pilan Filmes / Pexels
linux

Как восстановить SSH после ошибки в .bashrc

Восстанавливаем доступ по SSH, когда ошибка в .bashrc ломает интерактивную оболочку удалённого сервера. Показываем два способа входа через принудительный запуск /bin/sh и SFTP, а также объясняем риск простых ограничивающих …

Фото: Mikhail Nilov / Pexels
debug

Как отследить запускаемые команды через strace

Используем strace и системный вызов execve, чтобы увидеть, какие внешние программы запускает команда и с какими аргументами. На примере man разбираем ключи трассировки, сохранение лога и практическую отладку скриптов и приложений.

Фото: cottonbro studio / Pexels
bash

Почему условие while с pgrep работает не так

Разбираем ошибочную конструкцию while с pgrep, command substitution, test и перенаправлением в файл 0. Упрощаем цикл Bash до проверки кода возврата процесса и объясняем, почему лишние квадратные скобки только запутывают условие.

Фото: Andrea Piacquadio / Pexels
linux

Как безопасно тестировать systemd-юниты

Тестируем изменения systemd-юнитов через временное переопределение `systemctl edit --runtime`. Показываем выбор редактора, расположение override в `/run/systemd/` и замену ExecStart для nginx только до перезагрузки.

Фото: Field Engineer / Pexels
bash

Как реализовать try/catch в Bash

Разбираемся, чем заменить try/catch в Bash с помощью логического оператора `||`, группировки команд и проверки кода возврата. Показываем практический шаблон обработки ошибок и объясняем, когда проще использовать `set -e`.

Фото: So Phors / Pexels
linux

Чем service отличается от systemctl

Сравниваем команды service и systemctl для управления службами Linux. Через strace проверяем вызов systemctl, вспоминаем SysVinit и Upstart и перечисляем альтернативы для OpenRC, runit, s6 и Supervisor.

Фото: Marek Piwnicki / Pexels
linux

Как отлаживать SSH-подключение по логам

Ищем причины отказа SSH-аутентификации по ключам через журнал сервера и `tail`. Разбираем права на authorized_keys, неверные ключи, типовые сообщения auth.log и безопасное восстановление конфигурации.

Фото: Mikhail Nilov / Pexels
bash

Как узнать имя функции в Bash

Разбираем массив FUNCNAME и получаем имя текущей функции внутри Bash-скрипта. Показываем стек вызовов, аналог funcstack в Zsh и связанные переменные BASH_SOURCE и BASH_LINENO для отладки.

Фото: Walls.io / Pexels
linux

Как tar хранит владельца и группу файла

Исследуем заголовок tar-архива через hexdump и смотрим, где сохраняются UID, GID, имя владельца и группа. Проверяем `--owner`, `--group` и поведение распаковки для существующих и выдуманных пользователей.

Фото: Polina Tankilevitch / Pexels
security

Как StrictModes влияет на проверку SSH-ключей

Разбираем ошибку `bad ownership or modes` при входе по SSH-ключу и роль параметра `StrictModes`. Показываем безопасную диагностику прав `authorized_keys` и объясняем риски временного отключения проверки.

Фото: Pixabay / Pexels
bash

Как проверить синтаксис Bash-скрипта без запуска

Проверяем синтаксис Bash-скриптов до выполнения с помощью bash -n и режима set -o noexec. Добавляем проверку всех .sh-файлов в Git hook и используем set -u, чтобы находить обращения к необъявленным переменным.

Фото: cottonbro studio / Pexels
bash

Почему в Bash лучше использовать двойные скобки

Сравниваем одинарные и двойные квадратные скобки в условиях Bash. На примерах разбираем работу логического оператора &&, комбинированные проверки и причины, по которым двойные скобки безопаснее и понятнее нескольких отдельных …

Фото: Tom Fisk / Pexels
security

Как перехватить пароль SSH через strace

Показываем, как strace может раскрыть пароль пользователя при входе по SSH на скомпрометированном сервере. Разбираем параметры трассировки sshd, формат полученного вывода и риск для систем после захвата root-доступа.

Фото: FBO Media / Pexels
bash

Как добавить номера строк в отладку Bash

Настраиваем трассировку Bash через set -xve и переменную PS4, чтобы видеть файл, номер строки и имя функции. Добавляем цвет к отладочному выводу и быстрее находим место падения большого скрипта.

Фото: Bulat843 🌙 / Pexels
devops

JSON-логи Nginx в systemd journal

Настраиваем log_format Nginx для структурированных JSON-логов и отправляем access_log и error_log в systemd journal через syslog. Также разбираем параллельную запись в разные форматы для отладки.

Фото: Adventure Studio / Pexels
bash

Как гарантированно удалять tmp-файлы через trap

Используем Bash trap с EXIT для автоматической очистки временных файлов при успешном завершении, ошибке и SIGTERM. Проверяем порядок системных вызовов через strace и разбираем работу ловушек сигналов.

Фото: cottonbro studio / Pexels
linux

Чем rm отличается от unlink

Сравниваем команды rm и unlink в Linux: системные вызовы, обработку отсутствующих файлов, шаблоны и каталоги. Показываем, когда unlink удобнее для контроля ошибок в Bash-скриптах.

Фото: Yan Krukau / Pexels
games

Три игры для изучения командной строки Linux

Три игровых тренажёра для изучения командной строки Linux: BashCrawl, Terminus и CL Mystery. Они помогают практиковать навигацию, команды и логику в формате текстовых приключений и детективных квестов.

Фото: Erik Mclean / Pexels
bash

Измерение времени Bash-скриптов через EPOCHREALTIME

Функция uTIME измеряет интервалы выполнения Bash-кода в микросекундах с помощью EPOCHREALTIME. Сравниваем функции в текущей оболочке и subshell, а также преобразование даты через printf и внешнюю команду date.

Фото: Peter Morch / Pexels
linux

Логирование cron-задач и ротация логов

Показываем, как сохранить стандартный вывод cron-задачи в отдельный файл и настроить его ротацию через logrotate. Такой журнал помогает увидеть внутренние ошибки приложения, которые не попадают в системный лог cron.

Фото: Mikhail Nilov / Pexels
linux

Как запускать долгие скрипты в screen

Разбираем запуск долгих задач в именованных screen-сессиях, подключение через -r и -x и корректное отсоединение сочетанием Ctrl+A, d. Показываем фоновый запуск, передачу команд в сессию и организацию логирования.

Фото: Tom Fisk / Pexels
debug

Как найти узкое место в pipe через strace

Используем strace с измерением времени системных вызовов, чтобы увидеть блокировку записи в Linux pipe. Разбираем сложную команду и находим скачок задержки после заполнения буфера объёмом 65536 байт.

Фото: AlphaTradeZone / Pexels
linux

Как создать и завершить зомби-процесс в Linux

Создаём зомби-процесс на C и Bash, находим его и родительский PID через ps и разбираем завершение процесса. Объясняем, почему kill по PID зомби не помогает и когда такие записи можно не трогать.

Фото: James L / Pexels
security

Детерминированные пароли с pwgen

Генерируем повторяемые пароли через pwgen по логину, ключевому файлу и запоминаемому модификатору. Bash-обёртка скрывает ввод, проверяет зависимости и позволяет получать тот же набор паролей без их хранения.

Фото: Pixabay / Pexels · CC0
bash

Как проверить каталоги в PATH одной командой

Разбираем Bash-команду, которая проверяет каждый элемент PATH и выводит отсутствующие или недоступные каталоги. Пошагово объясняем set -f, IFS, проверку переменной, права доступа и диагностику путей через namei.

Фото: Masood Aslami / Pexels
linux

Как раскрасить логи в терминале с ccze

Утилита ccze добавляет цветовую подсветку к системным логам в терминале и выделяет ошибки. Показываем работу с cat и tail, сохранение последних строк в цветной HTML-файл и просмотр доступных плагинов.

Фото: Nemuel Sereti / Pexels
linux

Почему ls теряет цвета в pipe

Исследуем, почему ls отключает ANSI-цвета при передаче вывода через pipe. С помощью strace находим ENOTTY, подменяем результат ioctl и возвращаем управляющие последовательности опциями color=always и cat -v.

Фото: luis gomes / Pexels
linux

Почему rm -rf удаляет систему

Разбираем Патч Бармина и поведение команды rm -rf /* в Unix-системах. Показываем раскрытие glob оболочкой, права на каталоги, интерактивный режим и защиту --preserve-root=all.

Фото: Cup of Couple / Pexels
bash

Почему Bash-цикл зависает после grep -m1

Исследуем бесконечный Bash-цикл, канал до grep -m1 и незаметный SIGPIPE. Смотрим коды сигналов, процессы подоболочки и способы корректно остановить cat после закрытия конвейера.

Фото: Pavel Danilyuk / Pexels
debug

Как отлаживать sed с помощью strace

Практическое знакомство со strace на примере редактирования файла командой sed. По системным вызовам openat, read, write и rename разбираем работу временного файла и поиск ошибок доступа.

Фото: cottonbro studio / Pexels
debug

Как найти зависание PHP-FPM с помощью strace

Практический разбор зависания PHP-FPM и ошибки 502 Bad Gateway с помощью strace и lsof. По файловому дескриптору находим недоступный Elasticsearch, из-за которого воркер перестаёт обрабатывать запросы.

Фото: Ron Lach / Pexels
linux

Как OOM Killer выбирает процессы в Linux

Разбираемся, почему Linux при нехватке памяти завершает не обязательно самый большой процесс. Смотрим oom_score и oom_adj, меняем вероятность завершения процесса и задаём OOMScoreAdjust в systemd-юните.

Фото: Sharath G. / Pexels
linux

Как восстановить удалённый лог через файловый дескриптор

Воспроизводим ситуацию, когда процесс продолжает писать в удалённый лог через открытый файловый дескриптор. Восстанавливаем содержимое через /proc, а затем с помощью GDB переключаем работающий процесс на новый файл без …

Фото: Nicolas Foster / Pexels
linux

Как отладить core dump в Linux

Включаем создание core dump через sysctl и ulimit, намеренно вызываем segmentation fault в программе на C и исследуем дамп памяти в GDB. По стеку и значению указателя находим причину падения и исправляем код.

Фото: Nicolas Foster / Pexels
bash

Как работает eval в Bash

Разбираем двойную обработку команд в Bash через eval на примерах brace expansion, косвенного раскрытия переменных и файловых дескрипторов. Показываем, почему перенаправление с переменной требует ещё одного прохода интерпретатора.

Фото: Ryleigh Gordon / Pexels
linux

Как работают разрежённые файлы в Linux

Разбираемся, как sparse-файлы экономят физическое место на диске, но сохраняют заявленный логический размер. Создаём разрежённый файл через dd и truncate, форматируем его в ext4 и выясняем, как эту технологию используют …

Фото: Wenxin Dong / Pexels
linux

Почему base64 превращается в Jase64

Разбираем странный вывод Jase64 вместо base64 с помощью strace и системного вызова write. Смотрим, как ESC-последовательности проходят через псевдотерминал и почему эмулятор терминала скрывает первый символ сообщения об ошибке.

Фото: Pixabay / Pexels
dev

Less и секретный режим мониторинга

Я пробовал разные инструменты, но только less позволил мне объединить просмотр и поиск в одном окне. Я могу прыгать по строкам, искать IP‑адреса и мгновенно возвращаться в режим слежения нажатием SHIFT+F. Это экономит кучу времени …

Фото: AMORIE SAM / Pexels
linux

Тайна вызова Less в Linux утилитах

Знаешь этот бесконечный скролл в git log? Кто-то привык к пагинации, кто-то тупо шпарит grep. Я расскажу тебе как git управляет выводом истории коммитов через внешнюю утилиту less. И да, если её убить — простыня посыплется без …

Фото: Ron Lach / Pexels
bash

Awk для новичков. Как автоматизировать анализ логов

Я знаю, что сейчас все гонятся за JSON, и это удобно для новичков. Но когда речь заходит о реальной работе с большими логами, я всегда возвращаюсь к awk. Мой опыт показывает, что для быстрых фильтров и обработки огромных объемов …

Фото: Alfredo Lau-Tam / Pexels
debug

Диагностика проблем 1С через контрольные суммы

Если 1С начинает работать с ошибками и стандартные методы не помогают, причина может быть в повреждённых файлах. В посте показан способ сравнения каталогов с помощью rsync и md5sum. Разбираем, как найти расхождения и подтвердить …

Фото: cottonbro studio / Pexels
devops

Как дебажить Kubernetes и Docker с помощью «тулбоксов»

Любишь Kubernetes и Docker, но дебаг — головная боль? Покажу, как тулбоксы с набором утилит помогают быстро диагностировать проблемы и даже внедрять debug-контейнеры прямо в pod. Работает и на обычном докере!

Фото: Daniel Andraski / Pexels
dev

Как nano и vim работают с файлами

Иногда кажется, что редакторы работают одинаково, но это не так. Вчера проверял, почему lsof видит открытый файл в vim, но не в nano. В посте простой разбор с примерами и выводами.

Фото: cottonbro studio / Pexels
dev

Секретный инструмент в DevTools - Sensors

Если ты фронтендер или тестировщик — это must-have фича. Sensors помогает эмулировать геолокацию и поведение устройства, а Throttling — скорость сети, чтобы увидеть настоящие баги и слабые места.

Фото: Tima Miroshnichenko / Pexels
networks

Telnet для сетевых инженеров. Автоматизация и обход логина

Если тебе надо быстро подключиться к сетевому устройству и выполнять команды — этот пост для тебя. Поделюсь рабочими скриптами для Telnet с и без логина, а также лайфхаками по парсингу ответов.

Фото: Field Engineer / Pexels
linux

Кругом грабли!

Потребовалось мне сегодня поднять один серверный линукс дистрибутив на базе debian. Задача не тривиальная. Но по итогу как обычно подкинули граблей. Раньше всегда был уверен, что если сделать машину с параметрами 1 CPU, 512МБ RAM, …

Фото: K / Pexels
bash

Подводные камни в Bash №8

В Bash конструкция [ ... ] — не часть синтаксиса if, а отдельная команда, аналогичная test. Разбираем, как на самом деле выполняются условия и почему это важно для скриптов.

Фото: Markus Spiske / Pexels
debug

Что делать если все сломалось?

К предыдущему посту было написано достаточно много полезных комментариев и один из них представляет собой очень достойный чек-лист от Андрея. Вся годнота внутри 👇 Сообщи начальнику: "Упал прод. Разбираюсь в проблеме. Займет Х мин"

Фото: Bulat843 🌙 / Pexels