Upload files to "/"
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Директория со скриптами
|
||||
SCRIPTS_DIR="/opt/testbot"
|
||||
# Активация виртуального окружения
|
||||
VENV_ACTIVATE="$SCRIPTS_DIR/venv/bin/activate"
|
||||
|
||||
# Список скриптов для запуска в порядке выполнения
|
||||
SCRIPTS=("vk_load.py" "zk_load.py" "db_update_shortname.py" "evt_prefetch.py" "tg_publish.py" "evtg_publish.py")
|
||||
|
||||
# Интервалы между скриптами (в секундах)
|
||||
DELAYS=(2 2 2 2 30)
|
||||
|
||||
# Лог-файл
|
||||
LOG_FILE="/opt/testbot/runner.log"
|
||||
|
||||
# Функция для логирования
|
||||
log_message() {
|
||||
local message="$1"
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') - $message" | tee -a "$LOG_FILE"
|
||||
}
|
||||
|
||||
# Проверка и настройка лог-файла
|
||||
setup_logfile() {
|
||||
# Проверяем, существует ли файл и можно ли в него писать
|
||||
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"
|
||||
log_message "Создан лог-файл с помощью sudo: $LOG_FILE"
|
||||
else
|
||||
echo "ОШИБКА: Не удалось создать лог-файл $LOG_FILE!"
|
||||
exit 1
|
||||
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
|
||||
echo "ОШИБКА: Нет прав на запись в $LOG_FILE!"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Настройка лог-файла
|
||||
setup_logfile
|
||||
|
||||
log_message "=== ЗАПУСК СКРИПТА ==="
|
||||
log_message "Пользователь: $(whoami)"
|
||||
log_message "Директория со скриптами: $SCRIPTS_DIR"
|
||||
|
||||
# Проверка существования директории
|
||||
if [ ! -d "$SCRIPTS_DIR" ]; then
|
||||
log_message "ОШИБКА: Директория $SCRIPTS_DIR не существует!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Активация виртуального окружения
|
||||
if [ -f "$VENV_ACTIVATE" ]; then
|
||||
source "$VENV_ACTIVATE"
|
||||
log_message "Активировано виртуальное окружение: $VENV_ACTIVATE"
|
||||
else
|
||||
log_message "ОШИБКА: Файл активации venv $VENV_ACTIVATE не найден!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Переход в директорию со скриптами
|
||||
cd "$SCRIPTS_DIR" || {
|
||||
log_message "ОШИБКА: Не удалось перейти в $SCRIPTS_DIR"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Запуск скриптов
|
||||
for i in "${!SCRIPTS[@]}"; do
|
||||
script="${SCRIPTS[i]}"
|
||||
|
||||
# Проверка существования скрипта
|
||||
if [ ! -f "$script" ]; then
|
||||
log_message "ПРЕДУПРЕЖДЕНИЕ: Скрипт $script не найден, пропускаем."
|
||||
continue
|
||||
fi
|
||||
|
||||
log_message "Запуск скрипта: $script"
|
||||
|
||||
# Запуск Python-скрипта с записью вывода в лог
|
||||
if python3 "$script" >> "$LOG_FILE" 2>&1; then
|
||||
log_message "УСПЕХ: Скрипт $script завершился успешно."
|
||||
else
|
||||
exit_code=$?
|
||||
log_message "ОШИБКА: Скрипт $script завершился с ошибкой (код: $exit_code)!"
|
||||
log_message "=== ЗАВЕРШЕНИЕ С ОШИБКОЙ ==="
|
||||
exit $exit_code
|
||||
fi
|
||||
|
||||
# Пауза после скрипта (кроме последнего)
|
||||
if [ $i -lt $((${#SCRIPTS[@]} - 1)) ]; then
|
||||
delay="${DELAYS[i]}"
|
||||
log_message "Ожидание $delay секунд перед следующим скриптом..."
|
||||
sleep $delay
|
||||
fi
|
||||
done
|
||||
|
||||
log_message "ВСЕ СКРИПТЫ ВЫПОЛНЕНЫ УСПЕШНО!"
|
||||
log_message "=== ЗАВЕРШЕНИЕ ==="
|
||||
|
||||
Reference in New Issue
Block a user