#!/bin/sh
#
# OpenWRT router backup script for rsnapshot
# Copyright (c) 2007 Pieter Hollants <suserpms@hollants.com>
# This file is free software licensed under the GNU Public License (GPL) v2.
#
# This script backups data from the specified OpenWRT-based router,
# including nvram variables, the ipkg package list and the JFFS2 partition.
#
# NOTE: make sure that the user this script runs under has passwordless SSH
#       access to the router!

HOST=$1
PORT=$2

if [ -z "$HOST" ] ; then
  echo "Usage: $0 <hostname or IP> [<SSH port>]"
  exit
fi

if [ -z "$PORT" ] ; then
  PORT=22
fi

mkdir -p $HOST

[ -e ~/.ssh/id_rsa_backup ] && KEYOPTS="-i `echo ~/.ssh/id_rsa_backup`" || KEYOPTS=""
ssh $KEYOPTS -p$PORT root@$HOST "cd /overlay && /bin/tar c - *" >$HOST/overlay.tar 2>/dev/null
[ -f $HOST/overlay.tar.bz2 ] && rm $HOST/overlay.tar.bz2
bzip2 $HOST/overlay.tar
ssh $KEYOPTS -p$PORT root@$HOST "[ -e /usr/sbin/nvram ] && /usr/sbin/nvram show 2>/dev/null" | sort >$HOST/nvram.txt
ssh $KEYOPTS -p$PORT root@$HOST "/bin/opkg list_installed" >$HOST/pkglist.txt
sed -i '/Done./d' $HOST/pkglist.txt
