Files
Zilant2025/services/RUNNER_SETUP.md
T
gitadmin c8f1cc2595
ci/woodpecker/push/woodpecker Pipeline was successful
[ВОЛК] runner-timer
2025-12-26 02:14:34 +03:00

3.0 KiB

Настройка автоматического запуска runner.sh каждый час

Есть два способа настроить запуск runner.sh каждый час:

Вариант 1: Systemd Timer (Рекомендуется)

Этот вариант рекомендуется, так как в проекте уже используются systemd сервисы.

Установка:

  1. Скопируйте файлы в systemd:
sudo cp services/runner.service /etc/systemd/system/
sudo cp services/runner.timer /etc/systemd/system/
  1. Или используйте скрипт установки:
chmod +x services/install_runner_timer.sh
sudo bash services/install_runner_timer.sh
  1. Вручную:
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

Классический способ для периодических задач.

Установка:

  1. Откройте crontab для редактирования:
sudo crontab -e
  1. Добавьте строку:
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)