Hallo, Ratti:
#!/usr/bin/perl foreach $i ("karlheinz", "otto", "berta", "olga") { `grep $i /vor/log/http/access > /home/$i/log.txt`; }
Christian Schmidt:
Wenn man sich auf eine Logdatei beschraenkt, sollte die letzte Skriptzeile aber besser folgendermassen aussehen: `grep $i /var/log/http/access >> /home/log.txt`; Mit ">>" anstelle von ">" wird das Ergebnis der Abfrage an die Datei angeh]ngt; anderenfalls w@rde der bestehende Inhalt @berschrieben werden.
...was ja auch beabsichtigt ist. Dein Apache-Logbuch enthält ja, sagenwirmal, die Meldungen der letzten 10 Tage. Wenn ich jetzt per cron dein "persönliches" Logfile überschreibe, enthält es "deine" Einträge der letzten 10 Tage. So solls sein. Nach deiner Methode enthält "dein" Logfile: -Die Meldungen der letzten 10 Tage, von gestern gerechnet PLUS -Die Meldungen der letzten 10 Tage, von heute gerechnet Also sind 9 Tage doppelt vorhanden. Ab morgen kommen dann die Meldungen der letzten 10 Tage dazu, von Morgen gerechnet... Ab übermorgen... Das heisst, die sammelst gigantische Dupe-Mengen ein. Plus die ärgerliche Eigenheit, daß deine Logbücher plötzlich nicht mehr Chronologisch sind. Plus das Problem, daß deine Logs bis ins unendliche wachsen (Also Quota oder Plattenplatz). ;-) Man könnte das vermeiden, indem man zusätzlich das Datum verwaltet. Aber warum sollte man das tun, das "normale" Logfile wird ja auch irgendwann gekürzt. Gruß, Ratti