Найти в Дзене
Покупайте СтеллыИ дарите их за контент
2 дня назад

Heredoc - пишем многострочные скрипты без кавычек

Ситуация: вам нужно выполнить несколько команд на удалённом сервере через SSH. Или записать многострочный текст в файл. Или передать длинный SQL-запрос в базу. Оборачивать каждую строку в кавычки и экранировать спецсимволы - утомительно. Heredoc (встроенный документ) - это конструкция в Bash, которая позволяет передавать многострочный текст как стандартный ввод для команды. И не нужно экранировать кавычки. Базовый синтаксис: command << EOF строка 1 строка 2 строка 3 EOF EOF - это метка-ограничитель. Можно использовать любую: END, STOP, BLOCK. Вариант 1 (Записать многострочный текст в файл без echo для каждой строки): cat > file...

6 дней назад

diff - покажи мне разницу

Ситуация: у вас есть два похожих файла конфигурации. Или два лога с одного сервера за разные дни. Или две версии одного скрипта. Вам нужно понять, что именно изменилось, а не просто знать, что они разные. diff - это утилита, которая построчно сравнивает два файла и показывает, что добавилось, удалилось или изменилось. Без неё сравнивать файлы глазами - занятие для самых терпеливых. Базовое использование: diff file1.txt file2.txt Вывод показывает: - строки, которые есть только в первом файле (помечены <) - строки, которые есть только во втором файле (помечены >) - номера строк, где есть различия...

1 неделя назад

glances - мониторинг системы в реальном времени

Ситуация: на сервере что-то тормозит. Вы открываете htop - видите CPU и память. Открываете iotop - видите диск. Открываете iftop - видите сеть. Три терминала, три утилиты, глаза бегают. glances - это единая панель, которая показывает всё сразу: CPU, память, диск, сеть, температуру, процессы, даже docker-контейнеры. И делает это в красивом интерфейсе. Базовое использование: glances Вывод - экран с множеством разделов: загрузка каждого ядра CPU, использование памяти и swap, средняя нагрузка за 1, 5, 15 минут, чтение и запись на диск, входящий и исходящий сетевой трафик, топ процессов с сортировкой по любому столбцу и список Docker-контейнеров если они есть...

1 неделя назад

dust - визуальный анализ диска, который работает быстрее ncdu

Ситуация: диск заполнился на 95%. ncdu показывает дерево папок, но сканирует долго. А если диск терабайтный, ждать приходится минуты. dust (или dua) - это аналог ncdu, но написанный на Rust. Он сканирует диск быстрее, показывает те же деревья, но с более читаемым выводом и цветами. Базовое использование: dust Вывод показывает список папок и файлов, отсортированный по размеру, с цветовой индикацией. Вариант 1 (Сканировать конкретную папку): dust /var/log Вариант 2 (Ограничить глубину): dust -d 3 /home Показывает только три уровня вложенности. Вариант 3 (Исключить определённые папки): dust -x /home -x - не выходить за пределы текущей файловой системы...

3 недели назад

pkill и pgrep — убиваем и ищем процессы по имени

Ситуация: на сервере завис процесс, и вы не знаете его PID. Вы делаете ps aux | grep nginx, находите PID, потом kill -9 PID. Три действия, которые можно сделать одним. pgrep находит PID по имени процесса. pkill убивает процесс по имени. Вместо трёх действий - одно. Базовое использование: # Найти PID процесса по имени pgrep nginx # Убить все процессы с именем nginx pkill nginx # Убить только один процесс с точным совпадением имени pkill -x nginx Вариант 1 (Убить процесс по полному имени): # Не убьёт nginx, если его имя "nginx: master process" pkill -f "nginx: master" Вариант 2 (Убить процессы...

3 недели назад

atool - забудьте про флаги tar, zip и gunzip

Ситуация: вам прислали архив. Какой именно? .tar.gz? .zip? .7z? .bz2? Вы начинаете вспоминать: для tar нужны флаги -xzf, для zip - unzip, для 7z - x. И каждый раз гуглите. atool - это обёртка над разными архиваторами. Она сама определяет тип архива и вызывает правильную команду с правильными флагами. Вместо запоминания tar -xzf file.tar.gz вы просто пишете aunpack file.tar.gz. Работает для любого формата. Базовое использование: # Распаковать любой архив (определяет тип автоматически) aunpack archive.zip aunpack archive.tar.gz aunpack archive.7z aunpack archive.rar # Создать архив (сам выбирает формат по расширению) apack archive...

Покупайте СтеллыИ дарите их за контент