videoDownloadTGbot/cookies-cron/update_cookies.sh

112 lines
4.4 KiB
Bash
Raw Normal View History

#!/bin/bash
# Скрипт для обновления cookies Instagram и YouTube через cron
# Запускает скрипты получения cookies и копирует их на удаленный хост
set -euo pipefail
# Определяем директорию скрипта
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
# Настройки
INSTAGRAM_SCRIPT="$SCRIPT_DIR/get_instagram_cookies.sh"
YOUTUBE_SCRIPT="$SCRIPT_DIR/get_youtube_cookies.sh"
INSTAGRAM_COOKIES="$SCRIPT_DIR/instagram_cookies.txt"
YOUTUBE_COOKIES="$SCRIPT_DIR/youtube_cookies.txt"
REMOTE_HOST="germany"
REMOTE_INSTAGRAM_PATH="/root/services/videoDownloadTGbot/instagram_cookies.txt"
REMOTE_YOUTUBE_PATH="/root/services/videoDownloadTGbot/youtube_cookies.txt"
DEV_HOST="hermesDev"
DEV_INSTAGRAM_PATH="services/videoDownloadTGbot/instagram-downloader/instagram_cookies.txt"
DEV_YOUTUBE_PATH="services/videoDownloadTGbot/youtube-downloader/youtube_cookies.txt"
LOG_FILE="$SCRIPT_DIR/cron.log"
# Функция логирования
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" | tee -a "$LOG_FILE"
}
# Функция обработки ошибок
error_exit() {
log "ОШИБКА: $*"
exit 1
}
log "=== Начало обновления cookies ==="
# Проверяем наличие скриптов
if [ ! -f "$INSTAGRAM_SCRIPT" ]; then
error_exit "Скрипт не найден: $INSTAGRAM_SCRIPT"
fi
if [ ! -f "$YOUTUBE_SCRIPT" ]; then
error_exit "Скрипт не найден: $YOUTUBE_SCRIPT"
fi
# Проверяем, что скрипты исполняемые
chmod +x "$INSTAGRAM_SCRIPT" "$YOUTUBE_SCRIPT"
# Получаем cookies Instagram
log "Получение cookies Instagram..."
if bash "$INSTAGRAM_SCRIPT" >> "$LOG_FILE" 2>&1; then
if [ -f "$INSTAGRAM_COOKIES" ]; then
log "✅ Cookies Instagram успешно получены"
else
error_exit "Файл cookies Instagram не был создан"
fi
else
error_exit "Ошибка при получении cookies Instagram (код возврата: $?)"
fi
# Получаем cookies YouTube
log "Получение cookies YouTube..."
if bash "$YOUTUBE_SCRIPT" >> "$LOG_FILE" 2>&1; then
if [ -f "$YOUTUBE_COOKIES" ]; then
log "✅ Cookies YouTube успешно получены"
else
error_exit "Файл cookies YouTube не был создан"
fi
else
# YouTube скрипт может завершиться с кодом 0, даже если новый файл не создан (использует старый)
if [ -f "$YOUTUBE_COOKIES" ]; then
log "✅ Cookies YouTube (возможно использован старый файл)"
else
error_exit "Файл cookies YouTube не найден"
fi
fi
# Копируем cookies на удаленный хост (прод)
log "Копирование cookies на удаленный хост $REMOTE_HOST..."
# Копируем Instagram cookies
if scp -q "$INSTAGRAM_COOKIES" "${REMOTE_HOST}:${REMOTE_INSTAGRAM_PATH}" 2>>"$LOG_FILE"; then
log "✅ Instagram cookies скопированы на $REMOTE_HOST"
else
error_exit "Ошибка при копировании Instagram cookies (код возврата: $?)"
fi
# Копируем YouTube cookies
if scp -q "$YOUTUBE_COOKIES" "${REMOTE_HOST}:${REMOTE_YOUTUBE_PATH}" 2>>"$LOG_FILE"; then
log "✅ YouTube cookies скопированы на $REMOTE_HOST"
else
error_exit "Ошибка при копировании YouTube cookies (код возврата: $?)"
fi
# Копируем cookies на тестовый стенд (не блокируем прод-доставку, если стенд недоступен)
log "Копирование cookies на тестовый стенд $DEV_HOST..."
if scp -q "$INSTAGRAM_COOKIES" "${DEV_HOST}:${DEV_INSTAGRAM_PATH}" 2>>"$LOG_FILE"; then
log "✅ Instagram cookies скопированы на $DEV_HOST"
else
log "⚠️ Не удалось скопировать Instagram cookies на $DEV_HOST (продолжаем)"
fi
if scp -q "$YOUTUBE_COOKIES" "${DEV_HOST}:${DEV_YOUTUBE_PATH}" 2>>"$LOG_FILE"; then
log "✅ YouTube cookies скопированы на $DEV_HOST"
else
log "⚠️ Не удалось скопировать YouTube cookies на $DEV_HOST (продолжаем)"
fi
log "=== Обновление cookies завершено успешно ==="
exit 0