56 lines
1.5 KiB
Bash
56 lines
1.5 KiB
Bash
#!/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 |