summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xscripts/backup.cron28
1 files changed, 16 insertions, 12 deletions
diff --git a/scripts/backup.cron b/scripts/backup.cron
index f8e1ccb..df389c6 100755
--- a/scripts/backup.cron
+++ b/scripts/backup.cron
@@ -13,24 +13,25 @@ mount ${basedir}
echo "Start @ `date`" > ${basedir}/time
last=${basedir}/${prefix}.${count}
-if [ -d ${last} ]; then
- rm -r ${last}
+lasttmp=${basedir}/${prefix}.${count}.tmp
+if [ -d ${lasttmp} ]; then
+ rm -r ${lasttmp}
+fi
+if [ -x ${last} ]; then
+ mv ${last} ${lasttmp}
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
- cp -rlP ${src} ${dest}
- else
- mv ${src} ${dest}
- fi
- else
- mkdir ${dest}
- fi
+ mv ${src} ${dest}
done
+if [ -d ${lasttmp} ]; then
+ mv ${lasttmp} ${basedir}/${prefix}.0
+else
+ mkdir -p ${basedir}/${prefix}.0
+fi
for src in `cat ${basedir}/${list}`; do
dest=${basedir}/${prefix}.0/${src}
@@ -39,7 +40,7 @@ for src in `cat ${basedir}/${list}`; do
fi
rsync -ax --delete ${src} ${dest}
done
-hardlink -t ${basedir}/${prefix}.?
+touch ${basedir}/${prefix}.0
echo "Begin MySQL @ `date`" >> ${basedir}/time
rm -f ${basedir}/${prefix}.0/mysql.sql.xz
@@ -57,6 +58,9 @@ pg_dump -Upostgres p2pvr | xz > ${basedir}/${prefix}.0/postgresql-p2pvr.sql.xz
rm -f ${basedir}/${prefix}.0/postgresql-bugzilla.sql.xz
pg_dump -Upostgres bugzilla | xz > ${basedir}/${prefix}.0/postgresql-bugzilla.sql.xz
+echo "Begin hardlink @ `date`" >> ${basedir}/time
+hardlink -mt ${basedir}
+
echo "End @ `date`" >> ${basedir}/time
umount ${basedir}