diff --git a/.cursor/rules/version-and-docs.mdc b/.cursor/rules/version-and-docs.mdc index a1204a7..ec4da70 100644 --- a/.cursor/rules/version-and-docs.mdc +++ b/.cursor/rules/version-and-docs.mdc @@ -20,4 +20,4 @@ alwaysApply: true 5. Не поднимать версию за косметические правки без изменения поведения. -Текущая базовая версия: **1.0.3**. +Текущая базовая версия: **1.0.4**. diff --git a/.gitignore b/.gitignore index 4808310..2301b09 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,6 @@ __pycache__/ .env .env.local .env.*.local + +# Логи инстанса +logs/ diff --git a/README.md b/README.md index 381a7e1..1e0a2b7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Zilant / VOLK — Telegram poster и подписки -**Версия:** 1.0.3 ([`VERSION`](VERSION)) +**Версия:** 1.0.4 ([`VERSION`](VERSION)) Автоматическая публикация постов и событий в Telegram-канал, веб-редактор, бот подписок с сезонными deep link. diff --git a/VERSION b/VERSION index 21e8796..ee90284 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.3 +1.0.4 diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 086c982..0b280de 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -3,6 +3,12 @@ Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.1.0/). Версия проекта — в файле [`VERSION`](../VERSION) (SemVer). +## [1.0.4] - 2026-08-30 + +### Changed + +- `runner.sh` пишет лог в `logs/runner.log` (каталог создаётся при первом запуске). + ## [1.0.3] - 2026-08-30 ### Fixed diff --git a/docs/runner-setup.md b/docs/runner-setup.md index a1fca34..0098dfa 100644 --- a/docs/runner-setup.md +++ b/docs/runner-setup.md @@ -61,7 +61,7 @@ sudo crontab -e ``` ```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 * * *`. @@ -73,3 +73,5 @@ sudo crontab -e `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). + +Лог пайплайна: `/opt/testbot-git/logs/runner.log` (каталог `logs/` создаётся автоматически). diff --git a/runner.sh b/runner.sh index 07dacde..46e46c5 100644 --- a/runner.sh +++ b/runner.sh @@ -8,14 +8,16 @@ VENV_ACTIVATE="$SCRIPTS_DIR/venv/bin/activate" # Список скриптов для запуска в порядке выполнения # 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" "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 30) +DELAYS=(2 2 2) # Лог-файл -LOG_FILE="$SCRIPTS_DIR/runner.log" +LOG_DIR="$SCRIPTS_DIR/logs" +LOG_FILE="$LOG_DIR/runner.log" # Функция для логирования log_message() { @@ -25,11 +27,20 @@ log_message() { # Проверка и настройка лог-файла 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 ! touch "$LOG_FILE" 2>/dev/null; then - # Если не получается, пробуем с sudo if sudo touch "$LOG_FILE" 2>/dev/null; then sudo chown $(whoami) "$LOG_FILE" sudo chmod 644 "$LOG_FILE" @@ -40,10 +51,8 @@ setup_logfile() { fi fi fi - - # Проверяем права на запись + if [ ! -w "$LOG_FILE" ]; then - # Пытаемся изменить права if sudo chown $(whoami) "$LOG_FILE" 2>/dev/null || chmod 644 "$LOG_FILE" 2>/dev/null; then log_message "Изменены права на лог-файл: $LOG_FILE" else @@ -84,7 +93,7 @@ cd "$SCRIPTS_DIR" || { # Запуск скриптов for i in "${!SCRIPTS[@]}"; do script="${SCRIPTS[i]}" - + # Проверка существования скрипта if [ ! -f "$script" ]; then log_message "ПРЕДУПРЕЖДЕНИЕ: Скрипт $script не найден, пропускаем." @@ -92,7 +101,7 @@ for i in "${!SCRIPTS[@]}"; do fi log_message "Запуск скрипта: $script" - + # Запуск Python-скрипта с записью вывода в лог if python3 "$script" >> "$LOG_FILE" 2>&1; then log_message "УСПЕХ: Скрипт $script завершился успешно." @@ -113,4 +122,3 @@ done log_message "ВСЕ СКРИПТЫ ВЫПОЛНЕНЫ УСПЕШНО!" log_message "=== ЗАВЕРШЕНИЕ ===" -