#!/bin/sh # ====== КОНФИГУРАЦИЯ ====== # URL исходного скрипта URL="https://gitea.vchikalkin.dev/admin/keenetic-configs/raw/branch/master/scripts/update-files.sh" # Локальный путь, куда сохраняем LOCAL="/opt/update-files.sh" LOG="/opt/var/log/update_files.log" TMP_DIR="/opt/tmp" mkdir -p "$TMP_DIR" TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') CHANGED=0 # Временный файл TMP_FILE="$TMP_DIR/update-files.tmp" # ====== СКАЧИВАЕМ ====== wget -q -O "$TMP_FILE" "$URL" 2>/dev/null if [ $? -ne 0 ] || [ ! -s "$TMP_FILE" ]; then echo "$TIMESTAMP [ERROR] Не удалось скачать или файл пустой: $URL" >> "$LOG" rm -f "$TMP_FILE" exit 1 fi # ====== СРАВНИВАЕМ ====== NEED_UPDATE=0 if [ ! -f "$LOCAL" ]; then NEED_UPDATE=1 else OLD_SUM=$(md5sum "$LOCAL" | cut -d' ' -f1) NEW_SUM=$(md5sum "$TMP_FILE" | cut -d' ' -f1) [ "$OLD_SUM" != "$NEW_SUM" ] && NEED_UPDATE=1 fi # ====== ОБНОВЛЯЕМ ====== if [ "$NEED_UPDATE" -eq 1 ]; then mkdir -p "$(dirname "$LOCAL")" cp "$TMP_FILE" "$LOCAL" chmod +x "$LOCAL" CHANGED=1 echo "$TIMESTAMP [UPDATED] $LOCAL <- $URL" >> "$LOG" else echo "$TIMESTAMP [OK] Изменений нет" >> "$LOG" fi rm -f "$TMP_FILE" # ====== Ротация лога ====== if [ -f "$LOG" ]; then LINES=$(wc -l < "$LOG") [ "$LINES" -gt 200 ] && tail -100 "$LOG" > "$LOG.tmp" && mv "$LOG.tmp" "$LOG" fi exit 0