Leser: 27
1
2
3
print "Content-type: text/plain\n\n";
print qx(/bin/cp /home/www/user/logs/access_log /home/www/user/dir/mylogs/);
print qx(/bin/rm /home/www/user/logs/access_log);
2009-09-30T13:45:45 murphy
- Um mit Kalenderdaten zu arbeiten empfiehlt sich zum Beispiel das Modul Class::Date. Man kann aber auch einfach Funktionen wie time und localtime (aus dem Kernbestand von Perl) sowie strftime (aus POSIX) verwenden.
1 2 3 4 5
use POSIX; my $timestamp = POSIX::strftime( "%y%m%d", localtime ); print "$timestamp\n";
1 2 3 4 5 6
my $source='/home/www/user/logs/access_log' my $dest='/home/www/user/dir/mylogs/access_log.'.localtime(); #<== Satum anhängen, denke mir währe nützlich :-) # mv = move = verschieben system("mv",$source,$dest)==0 or die("Fehler beim kopieren des Logs"); # touch = anfassen = Datei erstellen, oder Zugriffszeit aktualisieren system("touch" $source); # < keine Fehlermeldung, einfach nur versuchen...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
#!/usr/bin/perl use 5.008; use strict; use warnings; # Funktion zum Formatieren von Zeitstempeln importieren use POSIX qw/strftime/; # Funktion zum Verschieben von Dateien importieren use File::Copy qw/move/; # Konstanten definieren, die Quelldatei und Zielprefix angeben use constant { SOURCE => '/home/www/user/logs/access_log', TARGET => '/home/www/user/dir/mylogs/access_log-' }; # Aktuellen Zeitstempel YYYY-MM-DD berechnen my $stamp = strftime '%Y-%m-%d' => localtime; # Datei verschieben oder laut Feuer schreien, wenn etwas schiefgeht ;-) move SOURCE, TARGET . $stamp or die "Unable to move file: $!\n";
1
2
use CGI::Carp qw(fatalsToBrowser);
die "Fatal error messages are now sent to browser window";
use File::Copy qw/move/;
use File::Copy qw/copy/;
2009-09-30T18:34:28 wayan[...]
ich habe es dann mal probiert und bekomme einen 500 Internat Server Error.
[...]
Quote[...]
Auf meinem Webserver liegt das Logfile, welches ich per Cronjob einmal am Tag in ein anderes Verzeichnis schieben und umbenennen möchte. [...]
print qx(/bin/cp /home/www/user/logs/access_log /home/www/user/dir/mylogs/);
QuoteZum Testen, ob es klappt, probiere ich das Script erstmal als normale file.pl zum Laufen zu bringen, bevor ich den Cronjob dazu einrichte. Das Ziel am Ende ist dann der Cronjob, der das Script einmal am Tag automatisch ausführen soll.