This commit is contained in:
@@ -20,4 +20,4 @@ alwaysApply: true
|
|||||||
|
|
||||||
5. Не поднимать версию за косметические правки без изменения поведения.
|
5. Не поднимать версию за косметические правки без изменения поведения.
|
||||||
|
|
||||||
Текущая базовая версия: **1.0.3**.
|
Текущая базовая версия: **1.0.4**.
|
||||||
|
|||||||
@@ -6,3 +6,6 @@ __pycache__/
|
|||||||
.env
|
.env
|
||||||
.env.local
|
.env.local
|
||||||
.env.*.local
|
.env.*.local
|
||||||
|
|
||||||
|
# Логи инстанса
|
||||||
|
logs/
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Zilant / VOLK — Telegram poster и подписки
|
# Zilant / VOLK — Telegram poster и подписки
|
||||||
|
|
||||||
**Версия:** 1.0.3 ([`VERSION`](VERSION))
|
**Версия:** 1.0.4 ([`VERSION`](VERSION))
|
||||||
|
|
||||||
Автоматическая публикация постов и событий в Telegram-канал, веб-редактор, бот подписок с сезонными deep link.
|
Автоматическая публикация постов и событий в Telegram-канал, веб-редактор, бот подписок с сезонными deep link.
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,12 @@
|
|||||||
Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.1.0/).
|
Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.1.0/).
|
||||||
Версия проекта — в файле [`VERSION`](../VERSION) (SemVer).
|
Версия проекта — в файле [`VERSION`](../VERSION) (SemVer).
|
||||||
|
|
||||||
|
## [1.0.4] - 2026-08-30
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- `runner.sh` пишет лог в `logs/runner.log` (каталог создаётся при первом запуске).
|
||||||
|
|
||||||
## [1.0.3] - 2026-08-30
|
## [1.0.3] - 2026-08-30
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ sudo crontab -e
|
|||||||
```
|
```
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
0 * * * * /bin/bash /opt/testbot-git/runner.sh >> /opt/testbot-git/runner_cron.log 2>&1
|
0 * * * * /bin/bash /opt/testbot-git/runner.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Другие варианты: `30 * * * *`, `*/30 * * * *`, `0 9-17 * * *`.
|
Другие варианты: `30 * * * *`, `*/30 * * * *`, `0 9-17 * * *`.
|
||||||
@@ -73,3 +73,5 @@ sudo crontab -e
|
|||||||
`vk_load.py` → `zk_load.py` → `db_update_shortname.py` → `tg_publish.py` → `evtg_publish.py`
|
`vk_load.py` → `zk_load.py` → `db_update_shortname.py` → `tg_publish.py` → `evtg_publish.py`
|
||||||
|
|
||||||
Legacy `tools/legacy/evt_prefetch.py` в пайплайн не входит (с 1.0.0).
|
Legacy `tools/legacy/evt_prefetch.py` в пайплайн не входит (с 1.0.0).
|
||||||
|
|
||||||
|
Лог пайплайна: `/opt/testbot-git/logs/runner.log` (каталог `logs/` создаётся автоматически).
|
||||||
|
|||||||
@@ -8,14 +8,16 @@ VENV_ACTIVATE="$SCRIPTS_DIR/venv/bin/activate"
|
|||||||
# Список скриптов для запуска в порядке выполнения
|
# Список скриптов для запуска в порядке выполнения
|
||||||
# Legacy prefetch (не в пайплайне): tools/legacy/evt_prefetch.py
|
# Legacy prefetch (не в пайплайне): tools/legacy/evt_prefetch.py
|
||||||
# SCRIPTS=("vk_load.py" "zk_load.py" "db_update_shortname.py" "tools/legacy/evt_prefetch.py" "tg_publish.py" "evtg_publish.py")
|
# SCRIPTS=("vk_load.py" "zk_load.py" "db_update_shortname.py" "tools/legacy/evt_prefetch.py" "tg_publish.py" "evtg_publish.py")
|
||||||
SCRIPTS=("vk_load.py" "zk_load.py" "db_update_shortname.py" "tg_publish.py" "evtg_publish.py")
|
# SCRIPTS=("vk_load.py" "zk_load.py" "db_update_shortname.py" "tg_publish.py" "evtg_publish.py")
|
||||||
|
SCRIPTS=("vk_load.py" "zk_load.py" "db_update_shortname.py" "tg_publish.py")
|
||||||
|
|
||||||
# Интервалы между скриптами (в секундах)
|
# Интервалы между скриптами (в секундах)
|
||||||
# DELAYS=(2 2 2 2 30)
|
# DELAYS=(2 2 2 2 30)
|
||||||
DELAYS=(2 2 2 30)
|
DELAYS=(2 2 2)
|
||||||
|
|
||||||
# Лог-файл
|
# Лог-файл
|
||||||
LOG_FILE="$SCRIPTS_DIR/runner.log"
|
LOG_DIR="$SCRIPTS_DIR/logs"
|
||||||
|
LOG_FILE="$LOG_DIR/runner.log"
|
||||||
|
|
||||||
# Функция для логирования
|
# Функция для логирования
|
||||||
log_message() {
|
log_message() {
|
||||||
@@ -25,11 +27,20 @@ log_message() {
|
|||||||
|
|
||||||
# Проверка и настройка лог-файла
|
# Проверка и настройка лог-файла
|
||||||
setup_logfile() {
|
setup_logfile() {
|
||||||
# Проверяем, существует ли файл и можно ли в него писать
|
if [ ! -d "$LOG_DIR" ]; then
|
||||||
|
if ! mkdir -p "$LOG_DIR" 2>/dev/null; then
|
||||||
|
if sudo mkdir -p "$LOG_DIR" 2>/dev/null; then
|
||||||
|
sudo chown "$(whoami)" "$LOG_DIR"
|
||||||
|
sudo chmod 755 "$LOG_DIR"
|
||||||
|
else
|
||||||
|
echo "ОШИБКА: Не удалось создать каталог $LOG_DIR!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [ ! -f "$LOG_FILE" ]; then
|
if [ ! -f "$LOG_FILE" ]; then
|
||||||
# Пытаемся создать файл
|
|
||||||
if ! touch "$LOG_FILE" 2>/dev/null; then
|
if ! touch "$LOG_FILE" 2>/dev/null; then
|
||||||
# Если не получается, пробуем с sudo
|
|
||||||
if sudo touch "$LOG_FILE" 2>/dev/null; then
|
if sudo touch "$LOG_FILE" 2>/dev/null; then
|
||||||
sudo chown $(whoami) "$LOG_FILE"
|
sudo chown $(whoami) "$LOG_FILE"
|
||||||
sudo chmod 644 "$LOG_FILE"
|
sudo chmod 644 "$LOG_FILE"
|
||||||
@@ -40,10 +51,8 @@ setup_logfile() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Проверяем права на запись
|
|
||||||
if [ ! -w "$LOG_FILE" ]; then
|
if [ ! -w "$LOG_FILE" ]; then
|
||||||
# Пытаемся изменить права
|
|
||||||
if sudo chown $(whoami) "$LOG_FILE" 2>/dev/null || chmod 644 "$LOG_FILE" 2>/dev/null; then
|
if sudo chown $(whoami) "$LOG_FILE" 2>/dev/null || chmod 644 "$LOG_FILE" 2>/dev/null; then
|
||||||
log_message "Изменены права на лог-файл: $LOG_FILE"
|
log_message "Изменены права на лог-файл: $LOG_FILE"
|
||||||
else
|
else
|
||||||
@@ -84,7 +93,7 @@ cd "$SCRIPTS_DIR" || {
|
|||||||
# Запуск скриптов
|
# Запуск скриптов
|
||||||
for i in "${!SCRIPTS[@]}"; do
|
for i in "${!SCRIPTS[@]}"; do
|
||||||
script="${SCRIPTS[i]}"
|
script="${SCRIPTS[i]}"
|
||||||
|
|
||||||
# Проверка существования скрипта
|
# Проверка существования скрипта
|
||||||
if [ ! -f "$script" ]; then
|
if [ ! -f "$script" ]; then
|
||||||
log_message "ПРЕДУПРЕЖДЕНИЕ: Скрипт $script не найден, пропускаем."
|
log_message "ПРЕДУПРЕЖДЕНИЕ: Скрипт $script не найден, пропускаем."
|
||||||
@@ -92,7 +101,7 @@ for i in "${!SCRIPTS[@]}"; do
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
log_message "Запуск скрипта: $script"
|
log_message "Запуск скрипта: $script"
|
||||||
|
|
||||||
# Запуск Python-скрипта с записью вывода в лог
|
# Запуск Python-скрипта с записью вывода в лог
|
||||||
if python3 "$script" >> "$LOG_FILE" 2>&1; then
|
if python3 "$script" >> "$LOG_FILE" 2>&1; then
|
||||||
log_message "УСПЕХ: Скрипт $script завершился успешно."
|
log_message "УСПЕХ: Скрипт $script завершился успешно."
|
||||||
@@ -113,4 +122,3 @@ done
|
|||||||
|
|
||||||
log_message "ВСЕ СКРИПТЫ ВЫПОЛНЕНЫ УСПЕШНО!"
|
log_message "ВСЕ СКРИПТЫ ВЫПОЛНЕНЫ УСПЕШНО!"
|
||||||
log_message "=== ЗАВЕРШЕНИЕ ==="
|
log_message "=== ЗАВЕРШЕНИЕ ==="
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user