... denn sonst stehen die demnächst ständig bei mir am Schreibtisch um sich Dateien wieder herstellen zu lassen ;-)
Ich lösche in zwei Schritten:
1. Aus den diversen Papierkörben in ein temporäres Verzeichnis nach 30 Tagen.
2. Entgültiges Löschen nach 60 Tagen.
Ich erzähle meinen Anwendern das es ein Heidenaufwand ist eine gelöschte Datei wieder herzustellen (das daraus resultierende schlechte Gewissen wird sich noch als nützlich erweisen und schärft zudem die Sinne des Anwenders).
#cleanRecycle.sh
TRASHLIST=$(find /data/samba/* -name .recycle)
find $TRASHLIST -type f -name '*.tmp' -exec rm -rf {} \;
find $TRASHLIST -type f -name '*.TMP' -exec rm -rf {} \;
find $TRASHLIST -type f -name '*.avi' -exec rm -rf {} \;
find $TRASHLIST -type f -name '*.mp3' -exec rm -rf {} \;
find $TRASHLIST -type f -mtime +30 -exec mv {} /data/samba/Recycle_TMP/ \;
find $TRASHLIST -type f -mtime +60 -exec rm -rf {} /data/samba/Recycle_TMP/ \;
(Verbesserungsvorschläge willkommen)
Der Vollständigkeit halber:
# Jeden Tag um 02:00 Uhr alle Papierkoerbe von Dateien mit Endung *.tmp, *.TMP sowie aelter als 30 Tage sauebern
0 2 * * * /root/script/cleanRecycle.sh
Auf keinen Fall mit / anstatt /data/samba ausführen, sonst habt ihr bald keine Filme und Musik mehr auf der Festplatte!
Nur als Warnung. find sollte man nicht unterschätzen und vor allem niemandem, egal wie seriös der Kommentator, trauen, wenn rm im Spiel ist.
Ist in der Tat ein wichtiger Hinweis!
Allerdings werden nur Filme und Musik aus .recycle-Verzeichnissen gelöscht.
Ich werde nächstes mal eine Script-Angabe mit Kommentaren bei evtl. schädlichen Befehlen versehen so das niemand ausversehen ein Problem bekommt.
Oder: Ich lasse mich zukünftig von der Musik-Industrie für solche Posts bezahlen ;-)
Alternativ kostenlos registrieren schrieb:
--------------------------------------------------------------------------------
> (Verbesserungsvorschläge willkommen)
statt
> find $TRASHLIST -type f -name '*.tmp' -exec rm -rf {} \;
> find $TRASHLIST -type f -name '*.TMP' -exec rm -rf {} \;
einfach -iname verwenden ;)
> find $TRASHLIST -type f -iname '*.tmp' -exec rm -rf {} \;
> find $TRASHLIST -type f -iname '*.TMP' -exec rm -rf {} \;
oder noch eleganter:
files=tmp|avi|mp3
find -regextype posix-awk -iregex '.*\.('$files')$' -exec rm -rf {} \;
Update: Da war ich zu schnell mit Copy/Paste.
Bei find und -iname braucht man natürlich nur och eine Zeile:
> find $TRASHLIST -type f -iname '*.tmp' -exec rm -rf {} \;
nepumuk schrieb:
--------------------------------------------------------------------------------
> Alternativ kostenlos registrieren schrieb:
> ---------------------------------------------------------------------------
> -----
> > (Verbesserungsvorschläge willkommen)
>
> einfach -iname verwenden ;)
>
> > find $TRASHLIST -type f -iname '*.tmp' -exec rm -rf {} \;
> > find $TRASHLIST -type f -iname '*.TMP' -exec rm -rf {} \;
>
Müsstes es dann nicht...
> > find $TRASHLIST -type f -iname '*.tmp' -exec rm -rf {} \;
... heißen (nur noch eine Zeile)? ;-)
> oder noch eleganter:
>
> files=tmp|avi|mp3
> find -regextype posix-awk -iregex '.*\.('$files')$' -exec rm -rf {} \;
Vielen Dank! Werde ich mal analysieren (auf anhieb verstehe die regex nicht; ich HASSE regex. Mein Gehirn verweigert sich da immer).
Gruß
Martin
Alternativ kostenlos registrieren schrieb:
--------------------------------------------------------------------------------
> find $TRASHLIST -type f -mtime +60 -exec rm -rf {} /data/samba/Recycle_TMP/
> \;
Würde diese Zeile nicht alle gefundenen Dateien UND das Verzeichnis /data/samba/Recycle_TMP/ SAMT INHALT löschen? Ich glaube nicht, dass das so beabsichtigt ist
-mtime +60 löscht nur Dateien, die älter als 60 Tage sind.
Die Logik vom dem Script ist dem Anwender die Dateien nach 30 Tagen zu entziehen aber erst nach 60 Tagen physikalisch zu löschen, falls doch noch jemand kommt uns eine Datei aus dem Papierkorb wieder haben möchte.
Alternativ kostenlos registrieren schrieb:
--------------------------------------------------------------------------------
> (Verbesserungsvorschläge willkommen)
Du könntest auch ganz einfach rdiff-backup nehmen. 1x am Tag Backup und Papierkorb leeren und alle Backups älter als 60 automatisch löschen lassen. Wäre wohl ein 3-Zeilen-Skript. Damit kannst du dann sogar jeden dieser 60 Tage wieder komplett herstellen, sehr schön für alte Dokumentenversionen.
fahfdhdsdshdgfdgfdsgf schrieb:
--------------------------------------------------------------------------------
> Alternativ kostenlos registrieren schrieb:
> ---------------------------------------------------------------------------
> -----
> > find $TRASHLIST -type f -mtime +60 -exec rm -rf {}
> /data/samba/Recycle_TMP/
> > \;
>
> Würde diese Zeile nicht alle gefundenen Dateien UND das Verzeichnis
> /data/samba/Recycle_TMP/ SAMT INHALT löschen? Ich glaube nicht, dass das so
> beabsichtigt ist
Öhm...
1. Das Verzeichnis Recycle_TMP ist noch da.
2. Sind Datei älter 60 Tage auch noch da (in Recycle_TMP).
3. Der letzte Befehl versucht Dateien +60 in den regulären Papierkörben zu löschen. Die sind aber nicht mehr da (Dateien +30 wurden ja schon verschoben).
Ergebnis: Der letzte Befehl ist totaler Schmutz und ich habe ein sehr großes Recycle_TMP Verzeichnis.
Tja, das ist Peinlich. Aber das nenne ich mal einen Verbesserungsvorschlag ;-)
Müsste (jetzt bin ich vorsichtig) so aussehen:
find /data/samba/Recycle_TMP/ -type f -mtime +60 -exec rm -rf {} \;
Alter... Gut das ich hier anonym unterwegs bin...
Alternativ kostenlos registrieren schrieb:
--------------------------------------------------------------------------------
>
> Vielen Dank! Werde ich mal analysieren (auf anhieb verstehe die regex
> nicht; ich HASSE regex. Mein Gehirn verweigert sich da immer).
>
> Gruß
> Martin
Ich liebe reguläre Ausdrücke, da die mir soviel Arbeit ersparen.
Der Ausdruck ist ganz simpel. Ohne Shellvariable sieht er so aus:
.*\.(tmp|avi|mp3)$
Zusammengefasst bedeutet das:
.* - Dateien, die 0 oder mehreren beliebigen Zeichen beginnen
\. - gefolgt von einem Punkt
(tmp|avi|mp3) - das Pipe Zeichen innerhalb einer Klammer bedeutet oder
$ - Ende. D.H. danach darf nicht mehr kommen.
Der Ausdruck findet also
pokerface.mp3
i_did_it_my_way.MP3
Piano Cat.avi
abcd.tmp
.TMP <-- Wenn du das nicht willst, dann am Anfang des Ausdrucks .* durch .+ ersetzen
nicht aber:
playlist.mp3.lst
test.avi~
avi
my.mp.3
In dem Script war ein Fehler! Nur falls das jemand tatsächlich kopieren sollte hier die korrigierte Fassung. Ein Verbesserungsvorschlag (danke nepumuk) mit drin:
#cleanRecycle.sh
TRASHLIST=$(find /data/samba/* -name .recycle)
find $TRASHLIST -type f -iname '*.tmp' -exec rm -rf {} \;
find $TRASHLIST -type f -iname '*.avi' -exec rm -rf {} \;
find $TRASHLIST -type f -iname '*.mp3' -exec rm -rf {} \;
find $TRASHLIST -type f -mtime +30 -exec mv {} /data/samba/Recycle_TMP/ \;
find /data/samba/Recycle_TMP/ -type f -mtime +60 -exec rm -rf {} \;
Vielen Dank für die Erläuterung!
Schönen Abend noch!
nepumuk schrieb:
--------------------------------------------------------------------------------
> -mtime +60 löscht nur Dateien, die älter als 60 Tage sind.
"-mtime" löscht gar nichts, sondern ist nur ein suchkriterium "rm -rf" hingegen löscht _alle_ übergebenen argumente, auch verzeichnisse...
Alternativ kostenlos registrieren schrieb:
--------------------------------------------------------------------------------
> 3. Der letzte Befehl versucht Dateien +60 in den regulären Papierkörben zu
> löschen. Die sind aber nicht mehr da (Dateien +30 wurden ja schon
> verschoben).
Die Tatsache, dass der letzte Befehl nichts findet, dürfte dir dein Verzeichnis gerettet haben :)
Kommentare: 222 | letzter Beitrag 26.05. 23:51
Kommentare: 216 | letzter Beitrag 00:27 Uhr
Kommentare: 161 | letzter Beitrag 09:43 Uhr
Kommentare: 93 | letzter Beitrag 26.05. 19:45
Kommentare: 66 | letzter Beitrag 08:55 Uhr
E-Mail an news@golem.de

Der japanische Spieldesigner Goichi Suda - Fans sagen schlicht "Suda 51" - ist für schräge Actionspiele bekannt. Sein nächstes Werk schickt ein scheinbar braves Schulmädchen in den Kampf gegen Zombies.

Weitgehend unbemerkt hat der US-Händler Tigerdirect die ersten Chromebox-Systeme von Google ausgeliefert. Für 330 US-Dollar bekommt der Nutzer recht gute Hardware in Nettop-Form, die sehr viel leistungsfähiger ist als die des Chromebook mit ChromeOS.

Nach der Urteilsverkündung im Rechtsstreit zwischen Youtube und Gema fühlten sich beide Seiten als Gewinner. In Wahrheit gibt es aber nur einen Verlierer, bloggt Medienrechtsexperte Thomas Hoeren: die Gema.

Ein britisches Blog will erfahren haben, dass Facebook den norwegischen Browserhersteller Opera Software kaufen will. Beide Unternehmen wollen sich dazu nicht äußern.

Am 26. Mai 2012 treten neue Datenschutzregeln der EU in Kraft. Websitebetreiber und Werbenetzwerke müssen Nutzer um Erlaubnis fragen, wenn sie Cookies setzen.

Libreoffice könne mehr als Openoffice und biete Entwicklern zudem Vorteile, sagte Michael Meeks auf dem Linuxtag 2012. Außerdem spricht er mit Golem.de über Libreoffice-Online, woran er derzeit arbeitet.