15 однострочных bash-скриптов для упрощения рутинных задач
Подписывайтесь на телеграм-канал usr_bin, где я публикую много полезного по Linux, в том числе ссылки на статьи в этом блоге.
1. Проверка использования дискового пространства
Нехватка места на диске может привести к сбою приложений. Эта команда выводит список всех смонтированных разделов и выделяет те, которые утилизированы на 80% и более.
df -h | awk '$5+0 > 80 {print}'
- df -h
отображает использование диска в удобном для чтения формате.
- awk ‘$5+0 > 80 {print}’
извлекает строки, в которых утилизация превышает 80%.
2. Поиск больших файлов, которые занимают место
Определите 10 самых больших файлов в системе.
find / -type f -exec du -h {} + | sort -rh | head -10
- find / -type f
ищет все файлы.
- du -h
вычисляет размеры файлов в удобном для чтения формате.
- sort -rh
сортирует результаты по убыванию.
- head -10
ограничивает вывод 10 самыми большими файлами.
3. Отслеживание обновлений лога в реальном времени
Просмотр файлов логов в режиме реального времени, с фильтрацией сообщений об ошибках.
tail -f /var/log/syslog | grep - line-buffered "error"
- tail -f
отслеживает файл журнала по мере добавления новых записей.
- grep — line-buffered “error”
фильтрует строки, содержащие "error".
4. Перезапуск службы в случае сбоя
Проверка, что критически важная служба, такая как Nginx, всегда запущена.
systemctl is-active - quiet nginx || systemctl restart nginx
- systemctl is-active — quiet nginx
проверяет состояние службы.
- Если она не запущена, systemctl restart nginx
перезапускает ее.
5. Мониторинг использования CPU в режиме реального времени
Проверка загрузки CPU в реальном времени для устранения неполадок с производительностью.
top -b -n 1 | grep "Cpu(s)"
- top -b -n 1
запускает «top» в пакетном режиме для одной итерации.
- grep “Cpu(s)”
извлекает сведения об использовании CPU.
6. Уничтожение самого ресурсоемкого процесса
Поиск и завершение процесса, потребляющего больше всего ресурсов CPU.
kill -9 $(ps -eo pid,%cpu - sort=-%cpu | awk 'NR==2 {print $1}')
- ps -eo pid,%cpu — sort=-%cpu
выводит список процессов, отсортированных по использованию CPU.
- awk ‘NR==2 {print $1}’
выбирает процесс с наибольшим потреблением ЦП.
- kill -9
принудительно завершает его.
7. Получение публичного IP-адреса
Быстрое получение публичного IP-адреса сервера.
curl -s ifconfig.me
- Способ использует curl для запроса текущего публичного IP-адреса из «ifconfig.me».
- -s
Подавляет ненужный вывод.
8. Поиск всех открытых сетевых портов
Перечисление всех активных прослушиваемых портов на вашем компьютере.
netstat -tulnp | grep LISTEN
- netstat -tulnp
отображает открытые порты и связанные с ними процессы.
- grep LISTEN
фильтрует результаты по прослушиваемым портам.
9. Копирование SSH-ключа на удаленный сервер
Настройка беспарольной SSH-аутентификации за секунды.
ssh-keygen -t rsa -b 2048 -q -N "" && ssh-copy-id user@remote_server
- ssh-keygen
создает пару ключей RSA.
- ssh-copy-id
передает открытый ключ на удаленный сервер.
10. Синхронизация файлов между серверами
Использование rsync для зеркалирования файлов с одного сервера на другой.
rsync -avz /local/path user@remote:/remote/path
- -a
сохраняет разрешения и временные метки.
- -v
включает подробный режим.
- -z
сжимает данные для более быстрой передачи.
11. Планирование задач с помощью Cron
Добавление задания cron для резервного копирования файлов каждую ночь в 2 часа ночи.
echo "0 2 * * * tar -czf /backup.tar.gz /important/data" | crontab -
- 0 2 * * *
планирует задание на 2 часа ночи ежедневно.
- tar -czf
сжимает и создает резервную копию "/important/data".
12. Загрузка файла в фоновом режиме
Использование «wget» для загрузки больших файлов без блокировки терминала.
nohup wget -q https://example.com/bigfile.zip &
- nohup
обеспечивает выполнение процесса даже после выхода из системы.
- wget -q
незаметно загружает файл.
- &
запускает процесс в фоновом режиме.
13. Поиск и удаление старых файлов логов
Автоматическая очистка логов старше 7 дней.
find /var/log -name "*.log" -mtime +7 -exec rm -f {} \;
- -mtime +7
выбирает файлы старше 7 дней.
- -exec rm -f {}
удаляет их.
14. Проверка открыт ли порт на удаленном сервере
Проверка открыт ли определенный порт (например, 443) на удаленном хосте.
nc -zv example.com 443
- nc -zv
проверяет соединение без отправки данных.
- Полезно для устранения неполадок брандмауэра и подключения.
15. Список всех запущенных Docker-контейнеров
Удобный просмотр активных контейнеров Docker.
docker ps - format "table {{.ID}} \t {{.Image}} \t {{.Status}}"
- docker ps
выводит список запущенных контейнеров.
- — format
структурирует вывод для лучшей читабельности.
На этом все! Спасибо за внимание! Если статья была интересна, подпишитесь на телеграм-канал usr_bin, где будет еще больше полезной информации.