Anzeige:
Ergebnis 1 bis 5 von 5

Thema: suchen in mehreren dateien in unterverzeichnissen

  1. #1
    Registrierter Benutzer
    Registriert seit
    Dec 2002
    Beiträge
    5

    suchen in mehreren dateien in unterverzeichnissen

    hi leute

    sache ist:
    linux redhat 6.2
    /var/www/virtual/ sind die unterschiedlichen kunden drinn
    /var/www/virtual/beispielkunde/logs/access_log

    mein problem nun ist, ich muss nach ner ip adresse in allen access_log von den kunden suchen. ich möchte natürlich nich jeden einzelnen ordner von hand durchsuchen. bisher bin ich soweit gekommen dass mein kommando so aussieht:

    (root@xxxxx) [1063] /var/www/virtual# find . -type f -print | find -name access_log -print | grep -l 65.141.xxx.xxx

    das hat aber zu dieser fehlermeldung geführt:
    [1] + broken pipe find . -type f -print |
    done find -name access_log -print |
    exit 1 grep -l 65.141.xxx.xxx


    was könnte ich da machen?
    achja, die access_log sind jeweils bis zu mehreren 100MB gross.
    was aber noch ist, mir reicht es wenn ich nur die in den letzten 60 min geänderten access_log files durch greppe.

    gruss
    pato

  2. #2
    Registrierter Benutzer Avatar von dauni
    Registriert seit
    Jan 2001
    Ort
    Meran
    Beiträge
    2.261
    Naja, als ersten Schritt würd ich das find . -type f -print weglassen, denn VErzeichnisse oder Links mit dem Namen access_log wirds ja nicht viele geben?

    Und zum anderen - in man find steht unter anderem folgendes:
    Code:
    -cmin n
                  File's status was last changed n minutes ago.
    Hab mal was ähnliches gemacht

    Code:
    for i in `find /backup/crons -ctime +4`; do
    rm -f $i
    done
    Da wirst dir wohl was zusammenderbasteln

  3. #3
    Registrierter Benutzer
    Registriert seit
    Dec 2002
    Beiträge
    5
    ok, muss noch anfügen dass ich recht neu unter linux bin und noch nie was für die bash proggrammiert habe

    naja, es sind ca. 300 access_log files... ich finde dass sind ne menge.
    hat mir sonst jemand gleich das ganze kommando (oder falls es ein perl code oder so ist, einfach den ganzen code)?

    gruss

  4. #4
    cirad
    Gast
    find -type f -name access.log -cmin -60 -exec grep -q f 111.111.111.111 {} \; -print
    sollte alle Dateien (+Pfad) ausgeben, die in den letzten 60 Minuten geändert wurden und in denen 111.111.111.111 vorkommt. Ohne -q wird die gefundene Zeile selber ebenfalls ausgegeben.

    EDIT:
    Sorry, kleiner Fehler. Das f nach grep -q hat sich da irgendwie eingeschlichen. Korrekt ist es:
    find -type f -name access.log -cmin -60 -exec grep -q 111.111.111.111 {} \; -print

  5. #5
    Registrierter Benutzer
    Registriert seit
    Dec 2002
    Beiträge
    5
    thx

    ausser dass du nach find noch nen punkt vergessen hast, hat es jetzt geklappt


    gruss
    pato

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •