summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/backup.cron47
1 files changed, 47 insertions, 0 deletions
diff --git a/scripts/backup.cron b/scripts/backup.cron
new file mode 100755
index 0000000..0f12cab
--- /dev/null
+++ b/scripts/backup.cron
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+basedir="/var/backup"
+prefix="daily"
+count="25"
+list="dirs.list"
+
+echo mount -o remount,rw ${basedir}
+mount -o remount,rw ${basedir}
+
+last=${basedir}/${prefix}.${count}
+if [ -d ${last} ]; then
+ echo rm -r ${last}
+ rm -r ${last}
+fi
+
+for n in `seq ${count} -1 1`; do
+ ((m=$n - 1))
+ src=${basedir}/${prefix}.$m
+ dest=${basedir}/${prefix}.$n
+ if [ -d ${src} ]; then
+ if [ ${m} -eq 0 ]; then
+ echo cp -rl ${src} ${dest}
+ cp -rl ${src} ${dest}
+ else
+ echo mv ${src} ${dest}
+ mv ${src} ${dest}
+ fi
+ else
+ echo mkdir ${dest}
+ mkdir ${dest}
+ fi
+done
+
+for src in `cat ${basedir}/${list}`; do
+ dest=${basedir}/${prefix}.0${src}
+ if [ ! -d ${dest} ]; then
+ echo mkdir -p ${dest}
+ mkdir -p ${dest}
+ fi
+ echo rsync -avx --delete ${src} ${dest}
+ rsync -avx --delete ${src} ${dest}
+done
+
+echo mount -o remount,ro ${basedir}
+mount -o remount,ro ${basedir}
+