#!/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