#! /usr/bin/perl ###################################################################### # BackfL Version 0.31 (Backupskript für Linux) # von Moritz Beller, http://www.4momo.de ###################################################################### ###################################################################### # Dokumentation und Benutzungshinweise ###################################################################### # Dieses Programm soll den täglichen Backupbedarf eines # Linuxbenutzers sicher und selbständig erledigen, trotzdem aber # bei bestimmten Besonderheiten sofort in der Lage sein, Ad-Hoc- # Backups auszuführen ('Backup NOW'). Es wird empfohlen, das Script # über Funktionen oder Systemeinrichtungen wie cron oder als Boot- # Script aufzurufen. # Die Ausgabe erfolgt als Bzip komprimierte Tar-Datei, was bedeutet, # dass auch ganze Verzeichnisse als Quelldatei übergeben werden # können (Entpacken mittels bunzip2). Es wird mit voller Absicht die # komplette Verzeichnisstruktur übernommen, um eine spätere Re- # integration zu erleichtern. # # Es gibt zwei verschiedene Aufrufmöglichkeiten: ## 1. Parameter: Quelle ## 2. Parameter: Ziel ## [3. Parameter: Zeitschritt in Tagen] ## perl backup.pl testdatei home/backups/tesdatei 0.3 # ## 1. Parameter: n Backup NOW ## 1. Parameter: Quelle ## 2. Parameter: Ziel ###################################################################### ###################################################################### # Lizenz: GPL ###################################################################### # Copyright (C) 2004 Moritz Beller (http://www.4momo.de) # # Dieses Programm ist freie Software. Sie können es unter den # Bedingungen der GNU General Public License, wie von der Free Software # Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder # gemäß Version 2 der Lizenz oder (nach Ihrer Option) jeder späteren # Version. ###################################################################### ($delete,$min,$stu,$tag,$mon,$jahr) = localtime(time); $jahr += 1900; $mon ++; $compare = "$jahr$mon$tag$stu$min"; if ($ARGV[0] ne "n" ) { if(!($ARGV[0] && $ARGV[1])) { print "Bitte Ausgangsdatei und Zieldatei spezifizieren. \n"; exit; } $quelle = $ARGV[0]; $ziel = "$ARGV[1]_".$tag."_$mon"."_$jahr"."_$stu"."_$min"."\.tar"; if(!(-r $quelle)) { print "Ausgangsdatei muss lesbar sein. \n"; exit; } if($ARGV[2] > 0) { $what = $ARGV[2]; } else { $what = 1; # Standardbackupwert: 1 Tag } open(DATEI,"; close(DATEI); if($zeile + $what <= $compare) { system("tar cf $ziel $quelle"); system("bzip2 $ziel"); open(DATEI,">list.mom"); print DATEI "$compare"; close(DATEI); } } else { if(!($ARGV[1] && $ARGV[2])) { print "Bitte Ausgangsdatei und Zieldatei spezifizieren. \n"; exit; } $quelle = $ARGV[1]; $ziel = "$ARGV[2]_".$tag."_$mon"."_$jahr"."_$stu"."_$min"."\.tar"; if(!(-r $quelle)) { print "Ausgangsdatei muss lesbar sein. \n"; exit; } system("tar -cf $ziel $quelle"); system("bzip2 $ziel"); open(DATEI,">list.mom"); print DATEI "$compare"; close(DATEI); }