# Настройка автоматического запуска runner.sh каждый час Есть два способа настроить запуск `runner.sh` каждый час: ## Вариант 1: Systemd Timer (Рекомендуется) Этот вариант рекомендуется, так как в проекте уже используются systemd сервисы. ### Установка: 1. Скопируйте файлы в systemd: ```bash sudo cp services/runner.service /etc/systemd/system/ sudo cp services/runner.timer /etc/systemd/system/ ``` 2. Или используйте скрипт установки: ```bash chmod +x services/install_runner_timer.sh sudo bash services/install_runner_timer.sh ``` 3. Вручную: ```bash 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 для редактирования: ```bash sudo crontab -e ``` 2. Добавьте строку: ```bash 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)