mit find den Inhalt von Dateien löschen

Diskutiere mit find den Inhalt von Dateien löschen im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo, ich komme mit folgendem Problem nicht weiter: Ich suche per find Log-Files die es unter /opt/ in sehr vielen Verzeichnissen gibt....

  1. #1 knausser, 11.08.2006
    knausser

    knausser Grünschnabel

    Dabei seit:
    31.05.2006
    Beiträge:
    6
    Zustimmungen:
    0
    Ort:
    munich - down town
    Hallo,

    ich komme mit folgendem Problem nicht weiter:

    Ich suche per find Log-Files die es unter /opt/ in sehr vielen Verzeichnissen gibt.

    find /opt/directory-nr*/logs/ -xdev -name grosse.log

    Diese Log-Files möchte ich per cron-job täglich aufräumen. Ein rm -f kann ich leider nicht machen, da ein aktiver Server-Dienst diese Dateien im Zugriff hat. Das löschen geht zwar, jedoch hat der Server-Dienst dann Probleme wenn ich ihm per rm -f die Log-Files "unterm Hintern" weglösche.

    Mit der I/O Umleitung :> kann ich die Datei auf 0 byte löschen:

    root@box:/opt$: ls -l /opt/directory-nr10/logs/grosse.log
    -rw-rw-r-- 1 admin adm 45473511 Aug 10 18:21 grosse.log

    root@box:/opt$: :> /opt/directory-nr10/logs/grosse.log

    root@box:/opt$: ls -l /opt/directory-nr10/logs/grosse.log
    -rw-rw-r-- 1 admin adm 0 Aug 10 18:21 grosse.log

    Wenn ich das ganze jetzt mit einem find machen will - es soll ja nachts per cron-job laufen - dann hab ich leider keinen Erfolg:

    root@box: /opt$: ls -l /opt/directory-nr11/logs/grosse.log
    -rw-rw-r-- 1 admin adm 45498988 Aug 10 18:21 grosse.log

    root@box:/opt$: find /opt/directory-nr*/logs/ -xdev -name grosse.log -exec :> '{}' ';'

    root@box: /opt$: ls -l /opt/directory-nr11/logs/grosse.log
    -rw-rw-r-- 1 admin adm 45498988 Aug 10 18:21 grosse.log


    Wäre super wenn mir hier jemand einen Tipp geben könnte. Ich habe Solaris 10 mit der bash im Einsatz.

    Vorab vielen Dank!
     
  2. #2 Wolfgang, 11.08.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Dein Script sollte mit den richtigen Rechten laufen. (sicher admin oder root)
    Schreib den Befehl am Besten in ein Script, sonst interpretiert crontab schon die Umleitung.
    e.g.
    Code:
    #!/bin/bash
    find /opt/directory-nr*/logs/ -xdev -name grosse.log -exec echo "">{} \;
    
    Sollte eigentlich gehen.
    Du kannst aber auch eine Schleife basteln, und das einzeln erledigen:
    Code:
    #!/bin/bash
    for I in $(find /opt/directory-nr*/logs/ -xdev -name grosse.log); do
    >$I;
    done
    
    Gruß Wolfgang
     
Thema:

mit find den Inhalt von Dateien löschen

Die Seite wird geladen...

mit find den Inhalt von Dateien löschen - Ähnliche Themen

  1. Dateien in Unix finden, die mehrere Strings beinhalten

    Dateien in Unix finden, die mehrere Strings beinhalten: Hallo liebe Leute, ich versuche über die Shell unter Unix alle Dateien ausfindig zu machen, die sowohl den SuchstringA als auch den SuchstringB...
  2. Beagle findet keine Inhalte von ppt und xls

    Beagle findet keine Inhalte von ppt und xls: Hallo Leute, beagle findet bei mir zwar ppt und xls aber nicht die Inhalte. Bei doc klappt alles ohne Probleme und auch sonst läuft alles. Ich...
  3. Erweiterbarer Wrapper für GNU find

    Erweiterbarer Wrapper für GNU find: Hallo zusammen, Da ich hier noch einen Account habe, wollte ich mal dieses Forum nutzen, um ganz dreist ein wenig Eigenwerbung zu machen :) Ich...
  4. find Ausgabe in "Anführungszeichen"

    find Ausgabe in "Anführungszeichen": Hallo Unixboard-User, ich bin neu hier im Forum und habe ein Problem: Ich habe ein recht großes Script welches auch wunderbar funktioniert....
  5. Wo befindet sich der Autostartordner?

    Wo befindet sich der Autostartordner?: Hallo ich habe CentOS 7.2.15.11 und Desktopumgebung mate , wo befindet sich der Autostartordner?