Files

55 lines
1.2 KiB
Bash
Raw Permalink Normal View History

2026-01-25 12:40:04 +00:00
#!/bin/sh
2026-02-04 04:05:30 +04:00
LOCAL_FILE="$1"
LOCAL_LST="$2"
2026-04-13 15:07:22 +04:00
SCR_APK="$3"
2026-02-04 04:05:30 +04:00
C_LIST="$4"
2026-01-25 12:40:04 +00:00
H_REPLACE="$5"
2026-02-04 04:05:30 +04:00
C_EXCLUDE="$6"
2026-01-25 12:40:04 +00:00
2026-02-04 04:05:30 +04:00
[ -z "$LOCAL_FILE" ] || [ -z "$LOCAL_LST" ] || [ -z "$C_LIST" ] && echo "Missing params!" && exit 1
2026-01-25 12:40:04 +00:00
TMP_DIR="/tmp/backup_stack"
rm -rf "$TMP_DIR" && mkdir -p "$TMP_DIR"
2026-04-13 15:07:22 +04:00
$SCR_APK write "$LOCAL_LST" "$H_REPLACE"
2026-01-25 12:40:04 +00:00
2026-02-04 04:05:30 +04:00
echo "Included:"
for p in $C_LIST; do
[ -z "$p" ] && continue
2026-01-25 12:40:04 +00:00
if [ -e "$p" ]; then
mkdir -p "$TMP_DIR$(dirname "$p")"
2026-02-04 04:05:30 +04:00
cp -aP "$p" "$TMP_DIR$p"
2026-01-25 12:40:04 +00:00
echo " [+] $p"
fi
done
2026-02-04 04:05:30 +04:00
echo "Excluded:"
if [ -n "$C_EXCLUDE" ]; then
for item in $C_EXCLUDE; do
[ -z "$item" ] && continue
TARGET_REMOVE=$(echo "$TMP_DIR/$item" | sed 's|//*|/|g')
if [ -e "$TARGET_REMOVE" ]; then
rm -rf "$TARGET_REMOVE"
echo " [-] $item"
else
echo " [!] Not found in backup: $item"
fi
done
fi
printf "Creating backup... "
TAR_ERR=$(tar -cz -f "$LOCAL_FILE" -C "$TMP_DIR" . 2>&1)
if [ $? -eq 0 ] && [ -f "$LOCAL_FILE" ]; then
echo "OK"
echo " [+] Archive size: $(du -sh "$LOCAL_FILE" | awk '{print $1}')"
else
echo "FAILED"
[ -n "$TAR_ERR" ] && echo "[!] Tar error: $TAR_ERR"
rm -rf "$TMP_DIR"
exit 1
fi
2026-01-25 12:40:04 +00:00
rm -rf "$TMP_DIR"