#!/bin/sh /etc/rc.common EXTRA_COMMANDS="backup restore" EXTRA_HELP=" backup Backup vnstat database restore Restore vnstat database " START=50 STOP=60 vnstat_option() { sed -ne "s/^[[:space:]]*$1[[:space:]]*['\"]\([^'\"]*\)['\"].*/\1/p" /etc/vnstat.conf } BACKUP_FILE=/etc/vnstat_backup.tar.gz LOGGER_TAG=vnstat_backup VNSTAT_DIR="$(vnstat_option DatabaseDir)" [ -n "$VNSTAT_DIR" ] || VNSTAT_DIR="/var/lib/vnstat" _chk_omrquota() { config_get enabled $1 enabled [ "$enabled" = "1" ] && backup="true" } backup_database() { backup="false" config_load omr-quota config_foreach _chk_omrquota interface [ "$(uci -q get openmptcprouter.settings.vnstat_backup)" = "1" ] && backup="true" if [ "$backup" = "true" ]; then 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 . fi fi } restore_database() { if [ -f $BACKUP_FILE ]; then 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 }