При прерывании или завершении скрипта могут остаться процессы, временные файлы или незакрытые соединения.
trap
решает эту проблему, позволяя выполнять свои команды при получении сигналов.В этом посте:
• Перехватываем SIGINT (Ctrl+C) и выводим сообщение.
• Удаляем временные файлы при EXIT.
• Настраиваем обработку SIGTERM и вызываем cleanup-функцию.
• Обеспечиваем предсказуемое поведение даже при аварийном завершении.
Так скрипты становятся надёжнее и аккуратнее в любой среде.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥8❤3
❤4👍4🔥4
Иногда нужно достать или отфильтровать данные из JSON без тяжёлых библиотек. В Linux это можно сделать стандартными утилитами: от простого grep и awk до мощного jq.
В этом посте:
• Фильтруем строки с grep.
• Разбираем отдельные поля через cut.
• Используем awk для выборки значений.
• Красиво форматируем и извлекаем данные с jq.
Минимум инструментов — и JSON перестаёт быть громоздким, превращаясь в удобный источник данных прямо из консоли.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥6❤4
Перед запуском скрипта важно убедиться, что файлы существуют, директории доступны, а права позволяют их читать, писать или выполнять. Эти проверки помогут избежать ошибок и сделать скрипты надёжнее.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥7❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Это мощный блог с чёткими и понятными гайдами по Ubuntu, shell-скриптам, настройке серверов, сетей и утилит.
Каждая статья — как мини-мануал: команды, объяснения, примеры.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤5🔥4
Автообновляем IP в файле, если он поменялся!
Часто у серверов на динамическом IP-адресе возникает проблема: адрес меняется, а конфиги или скрипты продолжают работать со старым.
Чтобы не обновлять его вручную, можно сделать простой Bash-скрипт.
1. Получаем текущий внешний IP:
Выведет твой реальный IP. Можно заменить на
2. Сохраняем IP в файл:
В файле будет только актуальный адрес.
3. Проверяем, изменился ли IP:
Скрипт сравнивает адреса и переписывает файл только при изменении.
4. Добавляем в cron:
Проверка каждые 10 минут — удобно для автоматизации.
🔥 Полезно, если сервер работает за динамическим IP или нужен актуальный адрес для SSH/VPN.
🚪 Bash Ready | #практика
Часто у серверов на динамическом IP-адресе возникает проблема: адрес меняется, а конфиги или скрипты продолжают работать со старым.
Чтобы не обновлять его вручную, можно сделать простой Bash-скрипт.
1. Получаем текущий внешний IP:
curl -s ifconfig.me
Выведет твой реальный IP. Можно заменить на
dig +short myip.opendns.com @resolver1.opendns.com
для надёжности.2. Сохраняем IP в файл:
echo "$(curl -s ifconfig.me)" > current_ip.txt
В файле будет только актуальный адрес.
3. Проверяем, изменился ли IP:
NEW_IP=$(curl -s ifconfig.me)
OLD_IP=$(cat current_ip.txt)
if [ "$NEW_IP" != "$OLD_IP" ]; then
echo "$NEW_IP" > current_ip.txt
echo "IP обновлён: $NEW_IP"
fi
Скрипт сравнивает адреса и переписывает файл только при изменении.
4. Добавляем в cron:
*/10 * * * * /path/to/update_ip.sh
Проверка каждые 10 минут — удобно для автоматизации.
🔥 Полезно, если сервер работает за динамическим IP или нужен актуальный адрес для SSH/VPN.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4🔥4
Чтобы разбирать ошибки и следить за выполнением, скрипт должен писать логи. В Bash это можно сделать буквально парой символов: перенаправить вывод, сохранить ошибки отдельно или параллельно дублировать всё в файл.
В этом посте:
• Используем >> для добавления лога без перезаписи.
• Дублируем вывод в консоль и файл через tee.
• Разделяем stdout и stderr для удобного анализа.
• Комбинируем приёмы для полного контроля логов.
Так ты получаешь прозрачность работы скриптов и всегда можешь понять, что пошло не так.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4🔥4