]> git.pld-linux.org Git - packages/etcbackup.git/commitdiff
4ef3ea93e66f192c483a4e10e25ec697 etcbackup
authorwolf <wolf@pld-linux.org>
Thu, 5 Sep 2002 14:14:21 +0000 (14:14 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    etcbackup -> 1.1

etcbackup [new file with mode: 0644]

diff --git a/etcbackup b/etcbackup
new file mode 100644 (file)
index 0000000..0b29c7b
--- /dev/null
+++ b/etcbackup
@@ -0,0 +1,74 @@
+#!/bin/sh
+# /etc backup   <wolf@pld.org.pl>
+umask 077
+
+month="`date +%Y-%m-00`"       # 00, ¿eby siê ³adnie sortowa³o
+fulldate="`date +%Y-%m-%d-%H:%M`"
+tmp="etc-$$-$RANDOM"
+tmp2="diff-$$-$RANDOM"
+
+# sprawdziæ, czy jest katalog, jak nie ma to zrobiæ
+if [ ! -d /var/log/etc ]
+then
+       if [ -f /var/log/etc ]
+       then
+               echo "Wywal /var/log/etc, to pogadamy."
+               exit 0
+       fi
+       mkdir /var/log/etc
+fi
+
+# sprawdziæ, czy jest pe³ny backup z aktualnego miesi±ca
+if [ ! -f /var/log/etc/etc-$month.tar.gz ]
+then
+       cd /etc
+       tar zcf /var/log/etc/etc-$month.tar.gz .
+       cd /var/log/etc
+#      echo "Zrobi³em pe³ny backup /etc:"
+#      ls -l etc-$month.tar.gz
+       s1=1
+fi
+
+# pu¶ciæ diffa
+if [ -f /var/log/etc/.current ]
+then
+       # jak nie jest rozpakowany w /, to niektóre linki siadaj±
+       cd /
+       mkdir $tmp
+       cd $tmp
+       tar zxf /var/log/etc/.current
+       cd /
+       diff -ruN $tmp /etc --exclude="counter" --exclude="adjtime" --exclude="rc.d" --exclude="mtab" > /tmp/$tmp2
+       cd /tmp
+       # jak s± ró¿nice, to wys³aæ gdzie trzeba
+       if [ -s $tmp2 ]
+       then
+               mail -s "/etc diff @ $fulldate" root < $tmp2
+       fi
+       rm $tmp2
+       # i teraz ju¿ bez excludowania
+       cd /
+       diff -ruN $tmp /etc --exclude="mtab" > /tmp/$tmp2
+       cd /tmp
+       if [ -s $tmp2 ]
+       then
+               mv $tmp2 /var/log/etc/etc-$fulldate
+               gzip -f /var/log/etc/etc-$fulldate
+               # uaktualnienie zrzutu /etc
+               cd /etc
+               tar zcf /var/log/etc/.current .
+               s2=1
+       else
+               rm $tmp2
+       fi
+       cd /
+       rm -rf $tmp
+fi
+# .current ju¿ jest aktualne, jak $s2==1
+if [ "$s1" -eq 1 -a "$s2" -ne 1 ]
+then
+       cd /var/log/etc
+       cp -f etc-$month.tar.gz .current
+fi
+
This page took 0.062226 seconds and 4 git commands to generate.