diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua
index 3395302b5..ee5090815 100644
--- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua
+++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua
@@ -554,6 +554,11 @@ function settings_add()
ucic:set("openmptcprouter","settings","external_check",externalcheck)
ucic:commit("openmptcprouter")
+ -- Enable/disable external check
+ local savevnstat = luci.http.formvalue("savevnstat") or "0"
+ luci.sys.exec("uci -q set vnstat.@vnstat[0].backup=%s" % savevnstat)
+ ucic:commit("openmptcprouter")
+
-- Enable/disable fast open
local fastopen = luci.http.formvalue("disablefastopen") or "0"
ucic:foreach("shadowsocks-libev", "ss_redir", function (section)
diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm
index c1f3e5a58..df536732d 100644
--- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm
+++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm
@@ -157,6 +157,16 @@
+
+
+
+
checked<% end %>>
+
+
+ <%:Save vnstats statistics on disk%>
+
+
+
diff --git a/openmptcprouter/files/etc/init.d/vnstat_backup b/openmptcprouter/files/etc/init.d/vnstat_backup
index bb9a5236c..d1444c0e4 100755
--- a/openmptcprouter/files/etc/init.d/vnstat_backup
+++ b/openmptcprouter/files/etc/init.d/vnstat_backup
@@ -16,13 +16,24 @@ vnstat_option() {
BACKUP_FILE=/etc/vnstat_backup.tar.gz
LOGGER_TAG=vnstat_backup
VNSTAT_DIR="$(vnstat_option DatabaseDir)"
-
+
+_chk_omrquota() {
+ config_get enabled $1 enabled
+ [ "$enabled" = "1" ] && backup="true"
+}
+
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 .
+ backup="false"
+ config_load omr-quota
+ config_foreach _chk_omrquota interface
+ [ "$(uci -q get vnstat.@vnstat[0].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
}