Löschscript mit Logging

  • Ersteller Ersteller Xavantis
  • Erstellt am Erstellt am
X

Xavantis

Hallo zusammen,

ich versuche derzeit ein shell script zu schreiben was die caches unserer Anwendungen wegräumt. Dabei soll es alle Dateien/Ordner entfernen die seit mehr als 150 Tagen nicht "angefasst" wurden. Alles was es löscht soll in eine Logdatei geschrieben werden.

Meine Idee war in etwa so:
Code:
#!/usr/bin/sh
LOGFILE="/var/log/clearcache.log"

find /home/*/cache/ type -f -atime +150 -exec date "+%Y-%m-%d %H:%M:%S" \; -exec rm -rv {} \; | xargs -L 2 >> $LOGFILE

Allerdings sieht das log noch recht unschön aus, - in etwa so:

Code:
2015-01-29 16:52:29 „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8TA06H_1/repertoire-6“ entfernt
2015-01-29 16:52:30 Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8TA06H_1“
2015-01-29 16:52:30 2015-01-29 16:52:30
Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8TA0SH_1“ 2015-01-29 16:52:30
2015-01-29 16:52:30 Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8TA0SC_1“
2015-01-29 16:52:30 „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8TA07Y_0/repertoire-6“ entfernt
2015-01-29 16:52:30 Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8TA07Y_0“
2015-01-29 16:52:30 „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8T30J9_0/repertoire-6“ entfernt
2015-01-29 16:52:31 Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8T30J9_0“
2015-01-29 16:52:31 Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8TA069_1“
Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8T30BY_1“ Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8TA0IC_1“
Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8TA06Y_1“ Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8T306Y_1“
Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8TA0WC_1“ Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8TA0JY_0“
Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8T30IC_1“ Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8TA06C_1“
Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8T30JY_0“ Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8TA0J9_0“
Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8TA0IH_1“ Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8TA0BY_1“
Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8TA03H_1“ Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8TA0W9_1“

Habt ihr eine Idee wie man es so hinbekommt das alles so aussieht:
Code:
2015-01-29 16:52:30 „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8T30J9_0/repertoire-6“ entfernt
2015-01-29 16:52:31 Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8T30J9_0“
2015-01-29 16:52:31 Verzeichnis wurde entfernt: „/home/acc-7/cache/50750_A50750_XSET_GLOBAL_2012-11-12/8T/2013/2013-02-04/8TA069_1“

Anscheinend braucht er bei einigen Verzeichnissen zu lange, so das er da nur murks ins log schreibt oder die Verzeichnisse werden nicht gefunden und dann kommt ein doppeltimestamp.

Danke und lieben Gruß,
Xavantis
 
Zuletzt bearbeitet von einem Moderator:
Das Problem dürfte sich lösen, wenn Du nicht -exec verwendest sonder die Fundstellen von find in einer for- oder while-schleife abarbeitest und darin das Löschen und Loggen durchführst.
 

Ähnliche Themen

Läuft eine Unix-Variante auf PC aus dem Jahr 2015, der nicht Windows-11-fähig ist?

Mit AWK verschiedene Felder verschiedener Zeilen vergleichen

Problem mit SATA

Keine grafische Oberfläche (Debian Installation)

Creative Labs SoundBlaster Audigy 2 ZS unter Debian / Kernel 3.16

Zurück
Oben