November 18

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, где будет еще больше полезной информации.