1. Foren
  2. Kommentare
  3. OpenSource-Forum
  4. Alle Kommentare zum Artikel
  5. › Papierkorb für Samba-Freigaben

Mein Script: Aber nicht meinen Anwendern sagen!

  1. Thema

Neues Thema


  1. Mein Script: Aber nicht meinen Anwendern sagen!

    Autor: Alternativ kostenlos registrieren 12.04.10 - 17:37

    ... 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)

  2. Ach ja: Natürlich per Crontab

    Autor: Alternativ kostenlos registrieren 12.04.10 - 17:39

    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

  3. Re: Ach ja: Natürlich per Crontab

    Autor: Anti-Troll 12.04.10 - 17:57

    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.

  4. Re: Ach ja: Natürlich per Crontab

    Autor: Alternativ kostenlos registrieren 12.04.10 - 18:08

    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 ;-)

  5. Re: Mein Script: Aber nicht meinen Anwendern sagen!

    Autor: nepumuk 12.04.10 - 18:09

    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 {} \;

  6. Re: Mein Script: Aber nicht meinen Anwendern sagen!

    Autor: nepumuk 12.04.10 - 18:11

    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 {} \;

  7. Re: Mein Script: Aber nicht meinen Anwendern sagen!

    Autor: Alternativ kostenlos registrieren 12.04.10 - 18:17

    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

  8. Re: Mein Script: Aber nicht meinen Anwendern sagen!

    Autor: fahfdhdsdshdgfdgfdsgf 12.04.10 - 18:17

    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

  9. Re: Mein Script: Aber nicht meinen Anwendern sagen!

    Autor: nepumuk 12.04.10 - 18:29

    -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.

  10. Re: Mein Script: Aber nicht meinen Anwendern sagen!

    Autor: Das Rad neu erfunden 12.04.10 - 18:30

    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.

  11. Re: Mein Script: Aber nicht meinen Anwendern sagen!

    Autor: Alternativ kostenlos registrieren 12.04.10 - 18:30

    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...

  12. Re: Mein Script: Aber nicht meinen Anwendern sagen!

    Autor: nepumuk 12.04.10 - 18:37

    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

  13. Re: Mein Script: UPDATE (aufgrund FEHLER)

    Autor: Alternativ kostenlos registrieren 12.04.10 - 18:41

    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 {} \;

  14. Re: Mein Script: Aber nicht meinen Anwendern sagen!

    Autor: Alternativ kostenlos registrieren 12.04.10 - 18:45

    Vielen Dank für die Erläuterung!

    Schönen Abend noch!

  15. Re: Mein Script: Aber nicht meinen Anwendern sagen!

    Autor: gfdsgfdsdgfgfdgfdsgfds 12.04.10 - 19:17

    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...

  16. Re: Mein Script: Aber nicht meinen Anwendern sagen!

    Autor: fsasasffdsafdsaa 12.04.10 - 19:19

    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 :)

  1. Thema

Neues Thema


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. Informatiker*in
    Umweltbundesamt, Dessau-Roßlau
  2. Mitarbeiter:in IT Netzwerk, Schwerpunkt Applikationssicherheit (m/w/d)
    STRABAG BRVZ GMBH & CO.KG, Stuttgart, Köln, Spittal/Drau (Österreich), Linz (Österreich)
  3. Softwareentwickler (m/w/d) C++
    EPLAN GmbH & Co. KG, Monheim am Rhein
  4. IT Operations Manager (m/w/d)
    Masterflex SE, Gelsenkirchen

Detailsuche


Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Spiele-Angebote
  1. ab 29,99€
  2. 12,24€ (UVP 34,99€) - günstig wie nie!
  3. basierend auf Verkaufszahlen


Haben wir etwas übersehen?

E-Mail an news@golem.de