tgoop.com/srv_admin_linux/585
Create:
Last Update:
Last Update:
📌 Автоматизация задач (cron, systemd timers, Ansible)
Всем доброй ночи!
Автоматизация — ключевой элемент эффективного администрирования серверов. В данном руководстве рассмотрены три основных инструмента автоматизации:
- cron — классический планировщик задач в UNIX-подобных системах.
- systemd timers — альтернатива cron, интегрированная в systemd.
- Ansible — инструмент управления конфигурацией и автоматизации.
1. Использование cron
cron позволяет запускать команды и скрипты по расписанию.
1.1. Основные файлы cron
- /etc/crontab — системный crontab.
- /etc/cron.d/ — каталог для пользовательских crontab-файлов.
- /var/spool/cron/crontabs/ — файлы crontab для отдельных пользователей.
1.2. Формат записи crontab
* * * * * /путь/к/команде аргументы
| | | | |
| | | | +---- День недели (0 - вс, 6 - сб)
| | | +------ Месяц (1-12)
| | +-------- День месяца (1-31)
| +---------- Часы (0-23)
+------------ Минуты (0-59)
Пример: запуск скрипта каждый день в 3:30 утра:
30 3 * * * /usr/local/bin/myscript.sh
1.3. Управление cron
- Просмотр текущего crontab:
crontab -l
- Редактирование crontab:
crontab -e
- Удаление crontab:
crontab -r
- Логи cron хранятся в /var/log/syslog (Ubuntu/Debian) или /var/log/cron (CentOS/RHEL).
2. Использование systemd timers
Systemd timers — альтернатива cron, предоставляющая больше возможностей, включая логирование и гибкость настроек.
2.1. Создание таймера
1. Создайте unit-файл для сервиса (`/etc/systemd/system/myscript.service`):
[Unit]
Description=Запуск скрипта
[Service]
ExecStart=/usr/local/bin/myscript.sh
2. Создайте unit-файл для таймера (`/etc/systemd/system/myscript.timer`):
[Unit]
Description=Таймер для myscript.service
[Timer]
OnCalendar=*-*-* 03:30:00
Persistent=true
[Install]
WantedBy=timers.target
2.2. Управление таймерами
- Включение таймера:
systemctl enable --now myscript.timer
- Проверка состояния таймера:
systemctl list-timers
- Просмотр логов:
journalctl -u myscript.service --no-pager
3. Автоматизация с Ansible
Ansible позволяет управлять серверами без установки агентов.
3.1. Установка Ansible
Для Debian/Ubuntu:
sudo apt update && sudo apt install -y ansible
Для CentOS/RHEL:
sudo yum install -y epel-release
sudo yum install -y ansible
3.2. Базовая структура Ansible
inventory/hosts # Список серверов
playbooks/
install_apache.yml # Пример Playbook
roles/
common/ # Роли Ansible
3.3. Пример Playbook
Файл
install_apache.yml:
- hosts: webservers
become: yes
tasks:
- name: Установить Apache
apt:
name: apache2
state: present
Запуск:
ansible-playbook -i inventory/hosts playbooks/install_apache.yml
Заключение
- Используйте cron для простых задач.
- Применяйте systemd timers, если важны логи и интеграция с systemd.
- Автоматизируйте масштабные задачи с Ansible.
BY Админские угодья
Share with your friend now:
tgoop.com/srv_admin_linux/585
