#!/bin/sh set -e ROUTER_HOST="${ROUTER_HOST}" ROUTER_USER="${ROUTER_USER}" ROUTER_PASS="${ROUTER_PASS}" ROUTER_USER=root ROUTER_HOST=172.16.11.7 ROUTER_PASS=556667777 BACKUP_NAME="openwrt-backup-$(date +%F).tar.gz" if ! command -v sshpass &> /dev/null; then sudo apt update && sudo apt install -y sshpass fi echo "[*] Creating backup on router..." sshpass -p "$ROUTER_PASS" ssh -o StrictHostKeyChecking=no $ROUTER_USER@$ROUTER_HOST << 'EOF' # Create OpenWRT uci-defaults file for image builder target=$(sed -n 1p /etc/opkg/distfeeds.conf | cut -d'/' -f8) soc=$(sed -n 1p /etc/opkg/distfeeds.conf | cut -d'/' -f9) arch=$(sed -n 2p /etc/opkg/distfeeds.conf | cut -d'/' -f8) model=$(cat /tmp/sysinfo/model) profile=$(cat /tmp/sysinfo/board_name | sed 's/,/_/') #script="/tmp/99-custom" echo "#profile = $profile" echo "#target = $target" echo "#soc = $soc" echo "#arch = $arch" echo "#$model custom default settings" echo #---------------------------------------------------- echo #Generating cmd for install pkg echo #---------------------------------------------------- grep -A3 "Package:" /usr/lib/opkg/status | awk ' /Package:/ { pkg=$2 } /Status:/ { if ($0 ~ /user installed/) { print "opkg install " pkg } }' echo #---------------------------------------------------- echo #Generating custom default file for $model echo #---------------------------------------------------- echo "uci -q batch << EOI" for section in $(uci show 2>/dev/null | awk -F. '{print $1}' | sort -u); do uci show "$section" | awk -F. '{print "set "$0}' echo "commit $section" done echo "EOI" # >> "$script" #chmod 755 "$script" #echo "Created $script". #echo Now transfer the file to the 'files/etc/uci-defaults/' folder in your image builder directory. OUTPUT_SCRIPT="recreate.sh" echo "#!/bin/bash" > "$OUTPUT_SCRIPT" echo "" >> "$OUTPUT_SCRIPT" for path in "$@"; do if [ -d "$path" ]; then echo "mkdir -p \"$path\"" >> "$OUTPUT_SCRIPT" elif [ -f "$path" ]; then dir=$(dirname "$path") echo "mkdir -p \"$dir\"" >> "$OUTPUT_SCRIPT" echo "cat << 'EOF' > \"$path\"" >> "$OUTPUT_SCRIPT" cat "$path" >> "$OUTPUT_SCRIPT" echo "EOF" >> "$OUTPUT_SCRIPT" else echo "# WARNING: $path не существует" >> "$OUTPUT_SCRIPT" fi echo "" >> "$OUTPUT_SCRIPT" done chmod +x "$OUTPUT_SCRIPT" echo "Скрипт $OUTPUT_SCRIPT создан" EOF >> "$ROUTER_HOST.bkp"