10 Bash-скриптов, которые автоматизируют 90% моих ежедневных задач DevOps
Это перевод оригинальной статьи 10 Bash Scripts That Automate 90% of My Daily DevOps Tasks
Подписывайтесь на телеграм-канал usr_bin, где я публикую много полезного по Linux, в том числе ссылки на статьи в этом блоге.
Потому что жизнь слишком коротка, чтобы вводить одни и те же команды по 200 раз в день.
Я ненавижу однообразную работу.
Не в смысле лени, а скорее в смысле «моя душа физически покидает мое тело, когда я печатаю kubectl get pods в 900-й раз» .
В начале своей карьеры я считал, что DevOps — это всё про архитектуру высокого уровня и стратегическое мышление..
На самом деле, это смесь тушения пожаров, ручного присмотра и ожидания CI-пайплайнов, словно вы наблюдаете за высыханием краски.
Потом я начал писать скрипты. И внезапно я стал не тем, кто делает скучную работу, а тем, кто приказывает роботам делать эту скучную работу.
И да, Bash все еще остаётся моим любимым оружием. Без сожалений.
Ниже приведены 10 скриптов Bash, которые избавили меня от 90% моего ежедневного повторяющегося бреда.
Если вы всё ещё вручную запускаете эти задачи, я вас не осуждаю. Хотя на самом деле, осуждаю. Немного.
1. Скрипт «Уничтожить всех тварей»
Когда вредоносный процесс, начинает пожирать ваш CPU заживо, не хочется играть в детектива с ps aux | grep, как в криминальной драме. Вам нужна одна команда.
#!/bin/bash
kill -9 $(ps aux | grep "$1" | grep -v grep | awk '{print $2}')Реальность: Опасно? Да. Удовлетворяет? Абсолютно.
2. Просмотр логов со стилем
Потому что смотреть логи без подсветки — всё равно что смотреть черно-белое телевидение в 2025 году.
#!/bin/bash tail -f "$1" | grep --color=always -E "$2|quot;
Передайте файл и ключевое слово, получите цветные логи в режиме реального времени. Ваши глаза будут вам благодарны.
3. Быстрый коммит и пуш в Git
Если вы набираете git add . && git commit -m больше двух раз в день, вы живете неправильно.
#!/bin/bash git add . git commit -m "$1" git push
Я называю его gcp.sh — и нет, это не Google Cloud Platform.4. Команда по уборке докер-контейнеров
Старые контейнеры — как грязная посуда. Если не обращать на них внимания достаточно долго, на кухне появится странный запах.
#!/bin/bash docker system prune -af docker volume prune -f
Запустите это после тяжёлого дня сборки. Мгновенное умиротворение.
5. Переключатель контекста Kubernetes
Мне надоело каждый раз набирать kubectl config use-context.
#!/bin/bash kubectl config use-context "$1" kubectl get nodes
Один аргумент — и вы в деле.
6. Сокращённая команда для деплоя
Половина моей работы — это набор команд для развёртывания. Это всё упростило.
#!/bin/bash kubectl apply -f "$1" kubectl rollout status deployment/"$2"
Потому что применять изменения, не проверяя статус развертывания, — всё равно что отправить сообщение и не убедиться, что оно дошло.
7. Disk Space Whisperer
Предупреждения о нехватке места на диске никогда не должны вас удивлять.
#!/bin/bash df -h | grep -E 'Filesystem|/dev/sda'
Запускайте каждый день. Избегайте сообщений в 3 часа ночи о том, что «места нет».
8. Пингер работоспособности сервиса
Потому что мониторинг должен осуществляться до того, как ваш менеджер заметит простой.
#!/bin/bash
curl -s -o /dev/null -w "%{http_code}\n" "$1"Возвращает HTTP-статус. Если он не 200 — начинай переживать.
9. Маскировщик секретов
Иногда необходимо делиться логами, но не секретами.
#!/bin/bash
sed 's/[A-Za-z0-9]\{20,\}/[REDACTED]/g' "$1"Не даёт тебе стать тем, кто случайно сливает API-ключи в Slack.
10. Утренняя проверка сервера
Мой кофе не будет готов, пока мои серверы не скажут, что с ними всё в порядке..
#!/bin/bash for host in $(cat servers.txt); do ping -c 1 "$host" &> /dev/null && echo "$host is UP" || echo "$host is DOWN" done
Один взгляд — и сразу понятно настроение на день.
И, наконец…
Bash — это скотч в арсенале DevOps. Некрасиво, не модно, но работает — и работает быстро.
Автоматизация мелочей освобождает ваш мозг для более важных задач: масштабирования, архитектуры и избегания ошибок, из-за которых вы оказываетесь в тренде в Twitter по совершенно нежелательным причинам.
Если ты думаешь, что я не прав и «настоящие» DevOps-инженеры должны всё делать на Python… ну что ж, я всё равно буду здесь, потягивая кофе, пока мои Bash-скрипты делают работу.
На этом все! Спасибо за внимание! Если статья была интересна, подпишитесь на телеграм-канал usr_bin, где будет еще больше полезной информации.