L i n u x - S c h u l e
|
|
Homepage | Server | Linux-Clients | Win9x-Clients | WinNT-Clients | Win3.11-Clients | Dos-Clients | Utilities |
Backupstrategien
Wenn es mal zum GAU (dem Abrauchen der Festplatte) kommt, sollte man sich bequem zurücklehnen und dann sein letztes Backup einspielen ...
An vielen Schulen gibt es das aber gar nicht (was uns leider erheblich von professionellen Datenverarbeitern unterscheidet).Ich möchte hier aber (vorerst) nicht auf die Prinzipien der Datensicherung eingehen, sondern nur ein Script vorstellen, mit dem ich in meiner Schule die wichtigsten Systemdateien und die Homeverzeichnisse der Anwender auf eine zweite Festplatte sichere. Entsprechend angepasst kann das Script sicher auch für Backups auf Datenbänder hilfreich sein.
Alle für das Script wichtigen Dateien liegen in /root/bin und werden über einen cronjob aufgerufen.
#!/bin/sh # # fullbackup Thomas Litsch 05.01.99 # # Sichert alle Verzeichnisse unterhalb von / in eigene tgz-Archive ausser # /home, /var, /proc, /save-hd, /a, /b, /cdrom und /mnt. Die Datei rootls # (erzeugt mit "ls / > rootls") enthaelt die zu sichernden Unter- # verzeichnisse und kann (sollte) individuell angepasst werden. # # /home und /var erhalten jeweils eigene Archive. # In der Funktion tarthehomes wird fuer jeden User in passwd ueberprueft, ob # ein Homeverzeichnis existiert. Das wird dann in ein Archiv mit seinem # Anwendernamen auf der zweiten Platte (unter /save-hd gemountet) gesichert. # # Für var wurde eine Dateiliste "varls" erstellt und mit der Hand editiert, # ebenso für spool. Diese Dateilisten koennen selbst erstellt werden mit: # "ls /var > varls" und "ls /var/spool > spoolls" # # !!! W I C H T I G !!! # # Die zweite Platte ist unter /save-hd gemountet!! # Alle Dateien liegen im Verzeichnis /root/bin # ############################################################################ # Variable für die Platte setzen PLATTE=/dev/sda1 ###################################################################### function tarthehomes { for i in `cat /etc/passwd | cut -f1 -d:` do if [ -d /home/$i ]; then cd /home/$i if [ -e /save-hd/homes/$i.tgz ]; then # Hier wird erst das alte Archiv umbenannt und dann ein neues erzeugt # das alte Archiv bleibt dabei bestehen mv /save-hd/homes/$i.tgz /save-hd/homes/$i.tgz.old tar czf /save-hd/homes/$i.tgz . # Wenn der Plattenplatz nicht ausreicht, kann nach erfolgreichem Schreiben des Archivs # das alte Archiv geloescht werden #mv /save-hd/homes/$i.tgz /save-hd/homes/$i.tgz.old #tar czf /save-hd/homes/$i.tgz . && rm -rf /save-hd/homes/$i.tgz.old else tar czf /save-hd/homes/$i.tgz . fi fi done } ###################################################################### function tartheroot { cp /vmlinuz /save-hd cp /zImage /save-hd for i in `cat /root/bin/rootls` do cd /$i tar czf /save-hd/$i.tgz . done } ######################################################################## function tarthevar { for i in `cat /root/bin/varls` do cd /var/$i tar czf /save-hd/var/$i.tgz . done } ######################################################################## function tarthespool { for i in `cat /root/bin/spoolls` do cd /var/spool/$i tar -czf /save-hd/var-spool/$i.tgz . done } ############################################################################## # Sicherung soll auf die zweite Platte gehen, ist die schon gemountet? # Entfernen des alten "mount-locks" if [ -x /tmp/save-hdexist ]; then rm -f /tmp/save-hdexist fi # liest mtab und prüft, ob die zweite Platte gemountet ist cat /etc/mtab | grep $PLATTE > /tmp/save-hdexist # ist der Ausgabefile groesser Null, kanns losgehen, sonst erst mounten if [ -s /tmp/save-hdexist ]; then if ! [ -d /save-hd/homes ] ; then mkdir /save-hd/homes fi tartheroot && tarthehomes && tarthevar && tarthespool else /bin/mount /dev/$PLATTE /save-hd if ! [ -d /save-hd/homes ] ; then mkdir /save-hd/homes fi tartheroot && tarthehomes && tarthevar && tarthespool fi exit 0Hier noch die Dateien rootls, varls und spoolls:
Rootlsbin boot dev etc lib root sbin usrvarls
X11R6 adm apache cron dhcpd lib log mqueue mysql ypspoolls
atjobs atspool locate lp1 lpd mail news pcnfs rwho uucp uucppublic
Nach oben
© Thomas Litsch, zuletzt aktualisiert 28.04.2000, Email: thomas.litsch@linux-schule.de