From: Michael Tremer Date: Tue, 15 Dec 2015 13:47:52 +0000 (+0000) Subject: ramdisk: Backup ramdisks once a night X-Git-Url: http://git.ipfire.org/?p=people%2Fjschlag%2Fipfire-2.x.git;a=commitdiff_plain;h=08729f79fb7b31326d367a74a50e372e4fb688d7 ramdisk: Backup ramdisks once a night Signed-off-by: Michael Tremer --- diff --git a/config/cron/crontab b/config/cron/crontab index 02abadc348..c42c650808 100644 --- a/config/cron/crontab +++ b/config/cron/crontab @@ -22,7 +22,10 @@ HOME=/ # Make some nice graphs */5 * * * * /usr/local/bin/makegraphs >/dev/null -17 5 * * * /etc/init.d/tmpfs backup >/dev/null + +# Backup ramdisks if necessary +%nightly,random * 23-4 /etc/init.d/collectd backup &>/dev/null +%nightly,random * 23-4 /etc/init.d/vnstat backup &>/dev/null # Update dynamic DNS records every five minutes. */5 * * * * [ -f "/var/ipfire/red/active" ] && /usr/bin/ddns update-all diff --git a/config/rootfiles/core/96/update.sh b/config/rootfiles/core/96/update.sh index b860207b5e..a3cf5cfd9b 100644 --- a/config/rootfiles/core/96/update.sh +++ b/config/rootfiles/core/96/update.sh @@ -67,6 +67,15 @@ if [ -L "/var/spool/cron" ]; then rm -f /var/spool/cron mv /var/log/rrd/cron /var/spool/cron chown cron:cron /var/spool/cron + + # Add new crontab entries + sed -i /var/spool/cron/root.orig -e "/tmpfs backup/d" + grep -q "collectd backup" /var/spool/cron/root.orig || cat <> /var/spool/cron/root.orig +# Backup ramdisks if necessary +%nightly,random * 23-4 /etc/init.d/collectd backup &>/dev/null +%nightly,random * 23-4 /etc/init.d/vnstat backup &>/dev/null +EOF + fcrontab -z fi # Start services diff --git a/src/initscripts/init.d/collectd b/src/initscripts/init.d/collectd index e5c35950d2..761e9c3f86 100644 --- a/src/initscripts/init.d/collectd +++ b/src/initscripts/init.d/collectd @@ -124,8 +124,15 @@ case "$1" in statusproc /usr/sbin/collectd ;; + backup) + # Backup all data if ramdisk is used + if mountpoint "${RRDLOG}" &>/dev/null; then + ${0} restart + fi + ;; + *) - echo "Usage: $0 {start|stop|restart|status}" + echo "Usage: $0 {start|stop|restart|status|backup}" exit 1 ;; esac diff --git a/src/initscripts/init.d/vnstat b/src/initscripts/init.d/vnstat index 05c35eefcd..518b2d7c65 100755 --- a/src/initscripts/init.d/vnstat +++ b/src/initscripts/init.d/vnstat @@ -21,8 +21,16 @@ case "$1" in stop) umount_ramdisk "${VNSTATLOG}" ;; + + backup) + # Backup all data if ramdisk is used + if mountpoint "${RRDLOG}" &>/dev/null; then + ${0} restart + fi + ;; + *) - echo "Usage: $0 {start|stop}" + echo "Usage: $0 {start|stop|backup}" exit 1 ;; esac