keenetic-configs/scripts/update-script.sh
2026-03-17 16:38:04 +03:00

56 lines
1.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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