]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
ramdisk: Backup ramdisks once a night
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 15 Dec 2015 13:47:52 +0000 (13:47 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 15 Dec 2015 13:47:52 +0000 (13:47 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
config/cron/crontab
config/rootfiles/core/96/update.sh
src/initscripts/init.d/collectd
src/initscripts/init.d/vnstat

index 02abadc3481a7fcec2f0ddf6ff52d748e2607127..c42c65080899216bc4c90f86bbd10200879faf4f 100644 (file)
@@ -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
index b860207b5e499a8a121dfbb45763d629238a092a..a3cf5cfd9bab1d022798f207a9ea8e14953d26b8 100644 (file)
@@ -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 <<EOF >> /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
index e5c35950d2dfdb4bf78d100472d6a3882e468e9b..761e9c3f862e23860f599ce1b1af764eed028812 100644 (file)
@@ -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
index 05c35eefcdcd88104d248bbd5cddd11d80a816df..518b2d7c65a99608d28a2888ffdd94d4f2e3ac87 100755 (executable)
@@ -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