Alte Dateien weg zippen..
Alte Dateien weg zippen..
Hallo,
ich möchte einen EIn-/Zweizeiler tippen, welches Logfiles, dessen Datum > aktuelles Datum sind, zippt und die Originale löschtn. Wie kann man das Datum einer Datei in der if-Anfweisung abfragen? Oder hat jemand Tipps was man noch so in einem Backup-Skript so abfragen kann?
Danke,
Gruß T.
ich möchte einen EIn-/Zweizeiler tippen, welches Logfiles, dessen Datum > aktuelles Datum sind, zippt und die Originale löschtn. Wie kann man das Datum einer Datei in der if-Anfweisung abfragen? Oder hat jemand Tipps was man noch so in einem Backup-Skript so abfragen kann?
Danke,
Gruß T.
Hm, also zum einen hat logrotate schon sowas aehnliches eingebaut und der wird normal fuer die meisten Logfiles genutzt ().
Wenn du das fuer eigene speziellere Sachen brauchst, die du z.B. nicht mit logrotate verarbeiten kannst, dann waere z.B. find dein Freund.
Ganz grob mal:
Das sollte alle Dateien im angebenen Verzeichnis und darunter finden, die einen Tag alt sind (also letzte Aenderung ist einen Tag her). Diese werden dann mittels gzip gepackt. Loeschen musst du die Originale dann nicht extra.
Wie gesagt, mehr Infos gibt dir z.B. die Manpage zu find.
Code: Alles auswählen
man logrotate
Wenn du das fuer eigene speziellere Sachen brauchst, die du z.B. nicht mit logrotate verarbeiten kannst, dann waere z.B. find dein Freund.
Ganz grob mal:
Code: Alles auswählen
find <verzeichnis> -type f -ctime 1 -exec gzip {} \;
Wie gesagt, mehr Infos gibt dir z.B. die Manpage zu find.
- KBDCALLS
- Moderator
- Beiträge: 22447
- Registriert: 24.12.2003 21:26:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Logrotate läßt sich doch konfigurieren.
Die Konfigs sind im Verzeichnis
Die Konfigs sind im Verzeichnis
Code: Alles auswählen
/etc/logrotate.d
Zuletzt geändert von KBDCALLS am 10.11.2006 22:41:50, insgesamt 1-mal geändert.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
- Kennst du unsere Verhaltensregeln
- Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.
- KBDCALLS
- Moderator
- Beiträge: 22447
- Registriert: 24.12.2003 21:26:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Schon richtig. Aber normalerweise erst nach 10 Tagen..tanita hat geschrieben:hm.. aber logrotate überschreibt doch wieder.. - muss mal weiter lesen.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
- Kennst du unsere Verhaltensregeln
- Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.
- KBDCALLS
- Moderator
- Beiträge: 22447
- Registriert: 24.12.2003 21:26:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Diie Apachelogfiles sind auf Wöchentlich und 52 Wochen eingestellt.
Code: Alles auswählen
/var/log/apache2/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
if [ -f /var/run/apache2.pid ]; then
/etc/init.d/apache2 restart > /dev/null
fi
endscript
}
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
- Kennst du unsere Verhaltensregeln
- Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.
@KBDCALLS, danke für dein Post, ist hilfreich. Kann es momentan nur in der Firma testen und jetzt ist WE, deshalb präventiv ein paar Fragen.
Werden durch weekly-> ein File/Woche und das durch rotate 52 -> 52 Wochen lang die Logfiles geschrieben, bzw. erst nach einer Woche wieder überschrieben?
Ich brauche täglich ein File (je nach Grösse ggf. mehr), die müssen archiviert werden und sollen erst nach einer Woche wieder überschrieben werden. D.h. daily und rotate 7 - richtig?
Ich will den Webwasher logrotieren und hatte auch gegrübelt, wie ich den schmerzlos restarten kann. Dieser startet mehrere Prozesse, d.h. mit einem kill -HUP wüsste ich nicht welchen.. ein restart gibt es meines Wissens nicht. Wollte das eigentlich vermeiden ihn zu stoppen, werde denke ich nicht drum rum kommen, ihn bei postrotate zu stoppen und dann wieder zu starten. Oder hat jemand in Fällen, wenn es mehrere Prozesse sind, eine andere Idee?
Habe am Beispiel Squid getestet. Weill es eine Testmaschine ist, geht eben kaum Traffic drüber, d.h. die Logfiles sind ziemlich leer.. und den zu restarten ist durch squid -k ... auch recht einfach..
Nochmal zu dem:
So werden ja nur die Files vom letzten Tag gezipp, mit -ctime 2 die zwei Tage jünger usw... Wie finde ich all die, die kleiner als aktuelles Datum sind?
Werden durch weekly-> ein File/Woche und das durch rotate 52 -> 52 Wochen lang die Logfiles geschrieben, bzw. erst nach einer Woche wieder überschrieben?
Ich brauche täglich ein File (je nach Grösse ggf. mehr), die müssen archiviert werden und sollen erst nach einer Woche wieder überschrieben werden. D.h. daily und rotate 7 - richtig?
Ich will den Webwasher logrotieren und hatte auch gegrübelt, wie ich den schmerzlos restarten kann. Dieser startet mehrere Prozesse, d.h. mit einem kill -HUP wüsste ich nicht welchen.. ein restart gibt es meines Wissens nicht. Wollte das eigentlich vermeiden ihn zu stoppen, werde denke ich nicht drum rum kommen, ihn bei postrotate zu stoppen und dann wieder zu starten. Oder hat jemand in Fällen, wenn es mehrere Prozesse sind, eine andere Idee?
Habe am Beispiel Squid getestet. Weill es eine Testmaschine ist, geht eben kaum Traffic drüber, d.h. die Logfiles sind ziemlich leer.. und den zu restarten ist durch squid -k ... auch recht einfach..
Nochmal zu dem:
Code: Alles auswählen
find <verzeichnis> -type f -ctime 1 -exec gzip {} \;
-
- Beiträge: 189
- Registriert: 11.08.2005 09:27:01
Falls find in Deinem Fall wirklich nicht gut geeignet ist, geht eine if-Abfrage auch mit stat.
Code: Alles auswählen
man stat