0Pricing
DevOps Bootcamp · Урок

Автоматизация системного администрирования

Применяйте скрипты Bash для автоматизации распространённых задач системного администрирования, таких как резервное копирование, ротация журналов и мониторинг.

«Автоматизация системного администрирования» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

Введение в автоматизацию администрирования

Добро пожаловать! На этом уроке мы погрузимся в автоматизацию распространённых задач системного администрирования с помощью скриптов Bash. Именно здесь ваши навыки написания скриптов раскроются в полной мере!

Автоматизация делает управление системами эффективнее и последовательнее, а также снижает вероятность ошибок, вызванных человеческим фактором. Это важный навык для любого разработчика или специалиста в области IT.

Зачем автоматизировать задачи администрирования?

Автоматизация повторяющихся задач даёт существенные преимущества:

  • Эффективность: задачи выполняются быстрее и без ручного вмешательства.
  • Последовательность: задачи каждый раз выполняются одинаково, что снижает количество ошибок.
  • Надёжность: скрипты можно настроить на стабильный запуск даже в ваше отсутствие.
  • Масштабируемость: одни и те же операции легко применять в разных системах.

Распространённые задачи для автоматизации

Многие задачи системного администрирования отлично подходят для автоматизации:

  • Резервное копирование: регулярное копирование важных данных.
  • Управление журналами: очистка старых журналов или их ротация.
  • Мониторинг системы: проверка дискового пространства, CPU и использования памяти.
  • Управление пользователями: создание или удаление учётных записей пользователей.
  • Обновление программного обеспечения: поддержание пакетов в актуальном состоянии.

Создание простого скрипта резервного копирования

Одна из важнейших задач — резервное копирование данных. Базовый скрипт резервного копирования может копировать определённые файлы или каталоги в безопасное место, часто добавляя метку времени.

Для создания уникальных каталогов резервных копий можно использовать команду cp вместе с командой date.

Запуск: ежедневное резервное копирование данных

Этот скрипт создаёт резервную копию каталога «my_data» с меткой времени и сохраняет её в папке «backups». Не забудьте заменить /path/to/my_data на реальный каталог в вашей системе, чтобы протестировать скрипт.

#!/bin/bash

SOURCE_DIR="/tmp/my_data"
BACKUP_DIR="/tmp/backups"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)

mkdir -p "$SOURCE_DIR"
echo "Hello from CoddyKit!" > "$SOURCE_DIR/file1.txt"
echo "More data." > "$SOURCE_DIR/file2.txt"

mkdir -p "$BACKUP_DIR"

# Perform the backup
cp -r "$SOURCE_DIR" "$BACKUP_DIR/backup_$TIMESTAMP"

echo "Backup created at: $BACKUP_DIR/backup_$TIMESTAMP"

Автоматизация очистки журналов

Файлы журналов быстро растут и могут занимать значительный объём дискового пространства. Автоматизация их очистки или ротации необходима для поддержания работоспособности системы.

С помощью команды find можно находить старые файлы журналов и удалять их либо перемещать в архив.

Запуск: удаление старых журналов

Этот скрипт удаляет из указанного каталога файлы журналов, которым больше 7 дней. Будьте осторожны при использовании rm в реальных скриптах!

#!/bin/bash

LOG_DIR="/tmp/app_logs"

mkdir -p "$LOG_DIR"
touch "$LOG_DIR/today.log"
touch -d "8 days ago" "$LOG_DIR/old_log_1.log"
touch -d "5 days ago" "$LOG_DIR/recent.log"
touch -d "10 days ago" "$LOG_DIR/old_log_2.log"

echo "Logs before cleanup:"
ls -l "$LOG_DIR"

# Find and delete log files older than 7 days
find "$LOG_DIR" -type f -name "*.log" -mtime +7 -delete

echo "\nLogs after cleanup:"
ls -l "$LOG_DIR"

Мониторинг использования диска

Мониторинг системных ресурсов, например дискового пространства, крайне важен для предотвращения сбоев. Скрипт может периодически проверять использование пространства и уведомлять вас, если оно превышает порог.

Команда df сообщает об использовании дискового пространства файловой системой. Мы можем обработать её вывод, чтобы получить только процентное значение.

Запуск: предупреждение о дисковом пространстве

Этот скрипт проверяет использование диска корневой файловой системой (/) и выводит предупреждение, если показатель превышает 80%. Вы можете изменить THRESHOLD.

#!/bin/bash

THRESHOLD=80

# Get disk usage percentage for root filesystem
USAGE=$(df -h / | awk 'NR==2 {print $5}' | sed 's/%//')

# Check if usage exceeds threshold
if (( USAGE > THRESHOLD )); then
  echo "WARNING: Disk usage on / is at ${USAGE}%!"
else
  echo "Disk usage on / is ${USAGE}%. All good!"
fi

Передовые практики для скриптов администрирования

При написании скриптов автоматизации учитывайте следующие передовые практики:

  • Обработка ошибок: используйте set -e, чтобы завершать работу при ошибке, и добавляйте явные проверки ошибок.
  • Ведение журналов: перенаправляйте вывод скрипта в файлы журналов для аудита и отладки.
  • Идемпотентность: проектируйте скрипты так, чтобы их многократный запуск давал тот же результат, что и однократный.
  • Настройка: используйте переменные или отдельные файлы конфигурации для значений, которые легко изменяются.
  • Разрешения: убедитесь, что скрипты имеют правильные разрешения на выполнение (chmod +x).

Проверка автоматизации администрирования

Какие из перечисленных ниже задач хорошо подходят для автоматизации с помощью скриптов Bash в системном администрировании?

Итоги: автоматизация администрирования

Отличная работа! Вы узнали, как написание скриптов Bash может преобразить задачи системного администрирования.

Мы рассмотрели автоматизацию резервного копирования, очистки журналов и мониторинга использования диска. Не забывайте применять такие передовые практики, как обработка ошибок и ведение журналов, чтобы создавать надёжные сценарии автоматизации.

Эти навыки бесценны для поддержания работоспособности и эффективности систем!

Часто задаваемые вопросы

Урок «Автоматизация системного администрирования» бесплатный?

Да — полный текст урока «Автоматизация системного администрирования» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Автоматизация системного администрирования»?

Применяйте скрипты Bash для автоматизации распространённых задач системного администрирования, таких как резервное копирование, ротация журналов и мониторинг. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Автоматизация системного администрирования»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Планирование задач с Cron
  2. Автоматизация системного администрирования
  3. Проект по расширенной разработке скриптов
  4. Автоматическая ротация и очистка журналов
← Назад к DevOps Bootcamp