summaryrefslogtreecommitdiff
path: root/openwrt/target
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2005-04-02 21:13:50 +0000
committerFelix Fietkau <nbd@openwrt.org>2005-04-02 21:13:50 +0000
commitfa466d4b23e4680e34793f313f5818f2105cb983 (patch)
treee6557a6ab3ca4954dd74197ee7f2845efdc241d7 /openwrt/target
parent38e649787ff289cdc2d599b364921134ab3c6479 (diff)
downloadmtk-20170518-fa466d4b23e4680e34793f313f5818f2105cb983.zip
mtk-20170518-fa466d4b23e4680e34793f313f5818f2105cb983.tar.gz
mtk-20170518-fa466d4b23e4680e34793f313f5818f2105cb983.tar.bz2
add simple scripts for backup/restore
SVN-Revision: 534
Diffstat (limited to 'openwrt/target')
-rwxr-xr-xopenwrt/target/default/target_skeleton/sbin/backup38
-rwxr-xr-xopenwrt/target/default/target_skeleton/sbin/restore71
2 files changed, 109 insertions, 0 deletions
diff --git a/openwrt/target/default/target_skeleton/sbin/backup b/openwrt/target/default/target_skeleton/sbin/backup
new file mode 100755
index 0000000..cdf41b9
--- /dev/null
+++ b/openwrt/target/default/target_skeleton/sbin/backup
@@ -0,0 +1,38 @@
+#!/bin/sh
+for param in $*; do
+ case "$param" in
+ -n)
+ SAVE_NVRAM=y
+ ;;
+ *)
+ OUTPUT_FILE="$param"
+ esac
+done
+
+if [ "$OUTPUT_FILE" = "-" ]; then
+ echo "Writing backup to stdout.." >&2
+elif [ "$OUTPUT_FILE" = "" ]; then
+ echo "No output file."
+else
+ echo "Writing backup to $OUTPUT_FILE" >&2
+ exec > "$OUTPUT_FILE"
+fi
+
+echo __FILELIST__
+find /etc -type f > /tmp/.wlbackup_files
+cat /tmp/.wlbackup_files
+
+echo __IPKG__
+cat /etc/ipkg.conf
+
+if [ "$1" = "-n" ]; then
+ echo __NVRAM__
+ nvram show 2>/dev/null
+fi
+
+echo __PACKAGES__
+grep '^Package:' /usr/lib/ipkg/status | cut -d' ' -f2
+
+echo __FILES__
+tar -T /tmp/.wlbackup_files -cz 2>/dev/null
+rm -f /tmp/.wlbackup_files
diff --git a/openwrt/target/default/target_skeleton/sbin/restore b/openwrt/target/default/target_skeleton/sbin/restore
new file mode 100755
index 0000000..6b5876c
--- /dev/null
+++ b/openwrt/target/default/target_skeleton/sbin/restore
@@ -0,0 +1,71 @@
+#!/bin/sh
+for param in $*; do
+ case "$param" in
+ *)
+ INPUT_FILE="$param"
+ esac
+done
+
+if [ "$INPUT_FILE" = "-" ]; then
+ echo "Reading backup from stdin..." >&2
+elif [ "$INPUT_FILE" = "" ]; then
+ echo "No input file."
+else
+ echo "Reading backup from $INPUT_FILE" >&2
+ exec < "$INPUT_FILE"
+fi
+
+process_line () {
+ case "$SECTION" in
+ ipkg)
+ echo "$line" >> /etc/ipkg.conf
+ ;;
+ nvram)
+ echo nvram set "$line"
+ ;;
+ package)
+ if grep "^Package: $line" /usr/lib/ipkg/status 2>&1 > /dev/null; then
+ echo Package "$line" already installed.
+ else
+ ipkg install "$line"
+ fi
+ ;;
+ file)
+ rm -f "$line"
+ ;;
+ esac
+}
+
+while true; do
+ read line
+ case "$line" in
+ __IPKG__)
+ SECTION=ipkg
+ echo "Restoring /etc/ipkg.conf"
+ rm -f /etc/ipkg.conf
+ ;;
+ __NVRAM__)
+ SECTION=nvram
+ echo "Restoring nvram"
+ ;;
+ __PACKAGES__)
+ SECTION=package
+ echo "Restoring packages"
+ ipkg update
+ ;;
+ __FILELIST__)
+ SECTION=file
+ echo "Deleting old files"
+ ;;
+ __FILES__)
+ echo "Restoring /etc"
+ tar -C / -xvz
+ echo "Restore complete."
+ exit 0
+ ;;
+ *)
+ process_line;
+ ;;
+ esac
+done
+