Forum: PC-Programmierung Linux: Letzten Dateizugriff auswerten


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Chris J. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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

von Andreas B. (bitverdreher)


Bewertung
0 lesenswert
nicht lesenswert
find /home..../stick -iname "*" -amin +1400 - delete 2>&1
noatime sollte dann allerdings in der fstab drin sein

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
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
von Chris J. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von DPA (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Andreas B. (bitverdreher)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Εrnst B. (ernst)


Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.