Romarioele
root@OWRT:~# cat /etc/init.d/vnstat_backup
#!/bin/sh /etc/rc.common
DATE=/bin/date +%Y-%m-%d_%H-%M-%S
EXTRA_COMMANDS="backup restore"
EXTRA_HELP=<<EOI
backup Backup vnstat database
restore Restore vnstat database
EOI
START=98
STOP=10
vnstat_option() {
sed -ne "s/^[[:space:]]$1[[:space:]]['\"]([^'\"])['\"]./\1/p" /etc/vnstat.conf
}
BACKUP_FILE=/root/vnstat/vnstat_backup.tar.gz
LOGGER_TAG=vnstat_backup
VNSTAT_DIR="$(vnstat_option DatabaseDir)"
backup_database() {
if [ ! -d $VNSTAT_DIR ]; then
logger -t $LOGGER_TAG -p err "cannot backup, data directory $VNSTAT_DIR does not exist (yet)"
else
logger -t $LOGGER_TAG -p info "backing up database"
/bin/tar -zcf $BACKUP_FILE -C $VNSTAT_DIR .
/bin/cp -rp /root/vnstat/vnstat_backup.tar.gz /usb/vnstat/vnstat_backup.$DATE.tar.gz
fi
}
restore_database() {
if [ ! -f $BACKUP_FILE ]; then
logger -t $LOGGER_TAG -p err "cannot restore, backup file does not exist (yet)"
else
logger -t $LOGGER_TAG -p info 'restoring database'
[ ! -d $VNSTAT_DIR ] && mkdir $VNSTAT_DIR
/bin/tar -xzf $BACKUP_FILE -C $VNSTAT_DIR
fi
}
start() {
restore_database
}
stop() {
backup_database
}
backup() {
backup_database
}
restore() {
restore_database
}
root@OWRT:~# crontab -l
0 * * * * /etc/init.d/vnstat_backup backup
Tieni presente che io salvo in local /root la copia corrente del dump, ma poi se guardi ne tengo una copia per data in /usb (mount point del disco usb3 esterno).
Non la si usa in teoria, ma mi viene comodo aver copia esterna.