mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-13 19:11:51 +00:00
Currently vnstat_backup service runs after vnstat runs and overwrites newly initialized database of vnstat causing it to crash and restart. Moving vnstat_backup service before vnstat lets it create the database before vnstat runs. This allows an error free operation.
63 lines
1.3 KiB
Bash
Executable file
63 lines
1.3 KiB
Bash
Executable file
#!/bin/sh /etc/rc.common
|
|
|
|
EXTRA_COMMANDS="backup restore"
|
|
EXTRA_HELP=<<EOF
|
|
backup Backup vnstat database
|
|
restore Restore vnstat database
|
|
EOF
|
|
|
|
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
|
|
}
|