88 lines
3.0 KiB
Markdown
88 lines
3.0 KiB
Markdown
# Настройка автоматического запуска 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)
|
|
|