Moin, ich habe an meinem ITX Mini-Holzbrett-Aufbau-Server einen USB Stick, den ich für temporäre Dateien missbrauche, die so anfallen, Screenshots, Video Clips usw. gerade beim Videoschnitt fällt ne Menge Temp Zeugs an. Alles was nach 24h wieder gelöscht werden kann. Aktuell habe ich einen 15min cronjob laufen mit find /home..../stick -iname "*" -Mmin +1400 - delete 2>&1 um Dateien zu löschen, die älter als 24h sind und find /home..../stick -type d -exec rmdir -p {} \; 2>&1 um Verzeichnisse zu löschen, die leer geworden sind durch die vorherige Dateilöschung. Maßgeblich ist das Datum der Dateierstellung. Blöd nur, wenn ich zb alte Fotos auf den "Temp-Stick" einspiele für ei Video, die werden sofort gelöscht. Ich hätte es aber lieber, wenn der letzte Zugriff ausgewertet werden würde. Der Server läuft 24/7 durch auch wenn der PC aus ist. In der fstab habe ich erstmal noatime rausgenommen, der Stick ist mit ext4 formatiert und wird beim Booten per fstab gemountet. Wie müsste ich die beiden zeilen umschreiben? Viele grüße, Christian
find /home..../stick -iname "*" -amin +1400 - delete 2>&1 noatime sollte dann allerdings in der fstab drin sein
Chris J. schrieb: > -iname "*" Frage: Was soll eigentlich diese Option bewirken? Antwort: Gar nichts, man kann sie weglassen. Einen Namensfilter anzugeben, der '*' heisst, hat überhaupt keinen Effekt. Denn er schränkt gar nichts ein. Zumal -iname im Gegensatz zur standardmäßig verwendeten Option -name nur bewirken kann, dass man das Sternchen sowohl als Klein- als auch als Großbuchstaben schreiben kann. Da das Sternchen weder als Groß- noch als Kleinbuchstabe existiert, hat das i vor name ebenso keinen Effekt. Im Tennis würde man das Doppelfehler nennen ;-) Also kurz und knackig: find /home..../stick -amin +1400 - delete 2>&1 Über einen zusätzlichen Filter -type f könnte man sich natürlich mal Gedanken machen...
:
Bearbeitet durch Moderator
Andreas B. schrieb: > noatime sollte dann allerdings in der fstab drin sein Du meinst draußen, also löschen. "no atime", d.h. es werden keine Zugriffsinfos gespeichert.
Eventuell könnte das hier noch hilfreich sein:
1 | find -exec env F={} sh -c '[ $(stat -c "%X" "$F") != $(stat -c "%Y" "$F") ] || [ $(stat -c "%X" "$F") != $(stat -c "%Z" "$F") ]' \; -print |
Das müsste alles filtern und dann ausgeben, wo die atime, mtime und ctime nicht alle identisch sind.
Chris J. schrieb: > Andreas B. schrieb: >> noatime sollte dann allerdings in der fstab drin sein > > Du meinst draußen, also löschen. "no atime", d.h. es werden keine > Zugriffsinfos gespeichert. Stimmt, Denkfehler meinerseits.
Chris J. schrieb: > find /home..../stick -type d -exec rmdir -p {} \; 2>&1
1 | find /home/.../stick -type d -empty -delete |
Macht in etwa das Selbe (wenn es oft genug gelaufen ist), aber das arme rmdir muss nicht über so viele fehlgeschlagene Aufrufe jammern... oder du gibst dem rmdir noch ein --ignore-fail-on-non-empty mit auf den Weg.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.