grünspam
Aktives Mitglied
Thread Starter
- Dabei seit
- 21.02.2004
- Beiträge
- 2.907
- Reaktionspunkte
- 16
Hi Leute,
ich habe mir zur Aufgabe gemacht mal etwas Perl zu lernen. Warum soll jetzt einfach mal offen bleiben
Erstellt wurde ein simples Backupscript an dem ich später rumexperimentieren will. Im Endeffekt gibt der Nutzer Quelle und Ziel ein um dann ein *.tar.gz zu erstellen, das mit Datum benannt im Ziel abgelegt wird.
Ich habe schon viel über "gut lesbaren Code" und "gut strukturiert" gelesen...
Nur hätte ich gerne mal Kritik zu meinen Codefetzen, dem Aufbau, Funktion und was man besser machen könnte.
EDIT Man hat sicherlich schon gemerkt wie basic das alles ist, also geht einfach mal von Anfängerniveau aus
ich habe mir zur Aufgabe gemacht mal etwas Perl zu lernen. Warum soll jetzt einfach mal offen bleiben
Erstellt wurde ein simples Backupscript an dem ich später rumexperimentieren will. Im Endeffekt gibt der Nutzer Quelle und Ziel ein um dann ein *.tar.gz zu erstellen, das mit Datum benannt im Ziel abgelegt wird.
Ich habe schon viel über "gut lesbaren Code" und "gut strukturiert" gelesen...
Nur hätte ich gerne mal Kritik zu meinen Codefetzen, dem Aufbau, Funktion und was man besser machen könnte.
Code:
#!/usr/bin/perl
#The most simple backup script.
#Start
print "##################\n";
print "# BACKUP RUNNING #\n";
print "##################\n\n";
#DATE
my $mydate = &datum_zeit("D-M-J");
#Target and Source
#Path to source
print "Source: ";
$source = <STDIN> ;
chop ($source) ;
#Path to target
print "\nTarget: ";
$target = <STDIN> ;
chop ($target) ;
#Uncomment for deleting the old Backup first
#print "Deleting old backup\n";
#system ("rm $target/backup*.tar.gz");
#Processing
print "\n\nWriting new backup file\n\n";
print "COMMENTS & WARNINGS:\n\n";
#For a "tell me anything"" output of tar set the -v option
system ("tar -czf $target/backup-$mydate.tar.gz $source");
#END
print "\nWORK DONE!\n";
print "Have a great day!\n\n";
#Subroutine $mydate
sub datum_zeit{
my $p=$_[0];
my %DATUM_ZEIT;
my $timeparameter;
my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
$Monat+=1;
$Jahrestag+=1;
$Monat = $Monat < 10 ? $Monat = "0".$Monat : $Monat;
$Monatstag = $Monatstag < 10 ? $Monatstag = "0".$Monatstag : $Monatstag;
$Stunden = $Stunden < 10 ? $Stunden = "0".$Stunden : $Stunden;
$Minuten = $Minuten < 10 ? $Minuten = "0".$Minuten : $Minuten;
$Sekunden = $Sekunden < 10 ? $Sekunden = "0".$Sekunden : $Sekunden;
$Jahr+=1900;
$DATUM_ZEIT{'J'}=$Jahr;
$DATUM_ZEIT{'M'}=$Monat;
$DATUM_ZEIT{'D'}=$Monatstag;
$DATUM_ZEIT{'h'}=$Stunden;
$DATUM_ZEIT{'m'}=$Minuten;
$DATUM_ZEIT{'s'}=$Sekunden;
$DATUM_ZEIT{'T'}=$Wochentag;
if ($p){
$p=~s/(J|M|D|h|m|s|T)/$DATUM_ZEIT{$1}/g, while ($p=~/J|M|D|h|m|s|T/);
}
else{
$p=$Jahr.$Monat.$Monatstag.'_'.$Stunden.$Minuten.$ Sekunden;
}
return $p;
}
EDIT Man hat sicherlich schon gemerkt wie basic das alles ist, also geht einfach mal von Anfängerniveau aus
Zuletzt bearbeitet: