#!/bin/sh LOCAL_FILE="$1" LOCAL_LST="$2" SCR_APK="$3" C_LIST="$4" H_REPLACE="$5" C_EXCLUDE="$6" [ -z "$LOCAL_FILE" ] || [ -z "$LOCAL_LST" ] || [ -z "$C_LIST" ] && echo "Missing params!" && exit 1 TMP_DIR="/tmp/backup_stack" rm -rf "$TMP_DIR" && mkdir -p "$TMP_DIR" $SCR_APK write "$LOCAL_LST" "$H_REPLACE" echo "Included:" for p in $C_LIST; do [ -z "$p" ] && continue if [ -e "$p" ]; then mkdir -p "$TMP_DIR$(dirname "$p")" cp -aP "$p" "$TMP_DIR$p" echo " [+] $p" fi done 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 rm -rf "$TMP_DIR"