Hier ist der Kern eines Backup-Jobs, der nach einer eingebauten USB-Festplatte sucht. Es wäre leicht, es für andere Zwecke zu modifizieren und dann über cron anzurufen oder es im Hintergrund mit einer Schlafschleife um die Schlüsselbereiche auszuführen. Mit diesem Skript können Sie angeben, wo sich der USB-Datenträger wahrscheinlich befindet (sdd). Es ist jedoch recht einfach, ihn so zu ändern, dass er anhand der Laufwerk-ID nach einem USB-Stick sucht.
Die Quelle der Sicherung ist ein über NFS bereitgestelltes Laufwerk, das jedoch offensichtlich geändert oder entfernt werden kann.
In der Mitte befindet sich eine for-Schleife, die die zu sichernden Positionen angibt
# V1.01 # Uses variable for usbdisk partition started=`date` usbdisk='sdd1' if [ $(mount | grep -c /mnt/usbdisk) != 1 ]; then echo "USB disk is not mounted - trying to mount..." mount /dev/$usbdisk /mnt/usbdisk if [ $(mount | grep -c /mnt/usbdisk) != 1 ]; then echo "USB disk still not mounted - alerting admins and quitting" echo "USB disk is not mounted on TUX9 so backup cannot continue" | mail -s "TUX9 backup problem" myemailaddress@here.tld exit 1 fi fi if [ $(mount | grep -c /mnt/nas) != 1 ]; then echo "NAS NFS mount is not present - trying to mount..." mount -t nfs -o proto=tcp,port=2049 mynas3:nas /mnt/nas if [ $(mount | grep -c /mnt/nas) != 1 ]; then echo "NAS NFS mount is still not present - alerting admins and quitting" echo "NAS NFS mount is not present on TUX9 so backup cannot continue" | mail -s "ASLTUX9 backup problem" myemailaddress@here.tld exit 1 fi fi echo "All mount points present - backup starting..." for i in /boot / /home /var /mnt/nas # for testing for i in /boot do if [ $i = "/" ]; then rsync -axv --delete root@tux8.test.lan:$i /mnt/usbdisk/backup/root elif [ $i = "/mnt/nas" ]; then rsync -axv --delete $i/ /mnt/usbdisk/backup/nas else rsync -axv --delete root@tux8.test.lan:$i/ /mnt/usbdisk/backup$i fi done echo done, started at $started, finished at `date` echo "Backup of NAS3 and TUX8 to USB disk on TUX9 done. Started at $started, finished at `date`" | mail -s "TUX9 backup completed" myemailaddress@here.tld