3.0 KiB
3.0 KiB
Настройка автоматического запуска runner.sh каждый час
Есть два способа настроить запуск runner.sh каждый час:
Вариант 1: Systemd Timer (Рекомендуется)
Этот вариант рекомендуется, так как в проекте уже используются systemd сервисы.
Установка:
- Скопируйте файлы в systemd:
sudo cp services/runner.service /etc/systemd/system/
sudo cp services/runner.timer /etc/systemd/system/
- Или используйте скрипт установки:
chmod +x services/install_runner_timer.sh
sudo bash services/install_runner_timer.sh
- Вручную:
sudo systemctl daemon-reload
sudo systemctl enable runner.timer
sudo systemctl start runner.timer
Управление:
- Проверить статус:
sudo systemctl status runner.timer - Остановить:
sudo systemctl stop runner.timer - Запустить:
sudo systemctl start runner.timer - Отключить:
sudo systemctl disable runner.timer - Просмотр логов:
sudo journalctl -u runner.service -f - Список всех timers:
sudo systemctl list-timers
Настройка расписания:
Отредактируйте файл /etc/systemd/system/runner.timer:
OnCalendar=hourly- каждый часOnCalendar=*-*-* *:00:00- каждый час в начале часаOnCalendar=*-*-* 0,6,12,18:00:00- в 0, 6, 12, 18 часовOnCalendar=Mon..Fri 09:00:00- каждый будний день в 9:00
После изменения: sudo systemctl daemon-reload
Вариант 2: Cron
Классический способ для периодических задач.
Установка:
- Откройте crontab для редактирования:
sudo crontab -e
- Добавьте строку:
0 * * * * /bin/bash /opt/testbot-git/runner.sh >> /opt/testbot-git/runner_cron.log 2>&1
Это запустит скрипт в начале каждого часа (0 минут каждого часа).
Альтернативные варианты расписания:
0 * * * *- каждый час в начале часа (00:00, 01:00, 02:00...)30 * * * *- каждый час в 30 минут (00:30, 01:30, 02:30...)*/30 * * * *- каждые 30 минут0 9-17 * * *- каждый час с 9:00 до 17:00
Просмотр логов:
Логи будут записываться в /opt/testbot-git/runner_cron.log (если указан в crontab).
Рекомендации
- Systemd Timer - лучше для интеграции с существующими сервисами, более гибкое управление, лучшие логи
- Cron - проще для простых задач, не требует root прав (можно использовать
crontab -eбез sudo)