add simple scripts for backup/restore
git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@534 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
55dabb1053
commit
48bf198353
|
@ -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
|
|
@ -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
|
||||
|
Loading…
Reference in New Issue