Ankündigung

Einklappen
Keine Ankündigung bisher.

[OT] Grep/awk Frage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [OT] Grep/awk Frage

    Hallo,

    ich versuche gerade zu ermitteln, was meine Festplatte daran hindert zu schlafen.
    Dafür habe ich fatrace laufen lassen. Die Datei hat 1.2GB...

    Das liefert eine Log-Datei, die einen Inhalt erzeugt, wie:
    20:58:32.583636 smbd(25905): O /srv/dev-disk-by-label-DataPool1/Dokumente/Hendrik
    03:30:12.568890 rm(7783): R /srv/dev-disk-by-label-DataPool1/Backups/rsnapshot/Daten/dockerconfig/daily.6/zoneminder/zoneminder/cache
    03:30:12.568912 rm(7783): R /srv/dev-disk-by-label-DataPool1/Backups/rsnapshot/Daten/dockerconfig/daily.6/zoneminder/zoneminder/cache
    03:30:12.571415 rm(7783): C /srv/dev-disk-by-label-DataPool1/Backups/rsnapshot/Daten/dockerconfig/daily.6/zoneminder/zoneminder/cache
    03:30:12.571554 rm(7783): O /srv/dev-disk-by-label-DataPool1/Backups/rsnapshot/Daten/dockerconfig/daily.6/zoneminder/zoneminder/events
    03:30:12.571581 rm(7783): R /srv/dev-disk-by-label-DataPool1/Backups/rsnapshot/Daten/dockerconfig/daily.6/zoneminder/zoneminder/events
    03:30:12.571596 rm(7783): C /srv/dev-disk-by-label-DataPool1/Backups/rsnapshot/Daten/dockerconfig/daily.6/zoneminder/zoneminder/events
    Jetzt interessiert mich nicht jede Datei, die gelöscht wurde, sondern nur, dass hier wohl einige Dateien im Rahmen eines Rsnapshot-Laufs gelöscht wurden.
    Um das ganze übersichtlicher zu gestalten, würde ich also gerne die "Spalte" mit dem "rm(7783)" (also executable:PID) nehmen und nur jedes erste, oder die ersten 2-3 Vorkommen anzeigen.

    Kann mir jemand sagen, wie das mit grep oder awk geht?

    Gruß,
    Hendrik

    #2
    Kannst du nicht dafür jeden Editor verwenden und dann eine Suche einfügen?
    Verstehe das Problem wahrscheinlich gerade nicht
    Gruß,
    Andreas

    Kommentar


      #3
      Hallo,

      ich will einfach eine Übersicht erzeugen, mit Quellen, die die Festplatte wecken. Und wenn da rm(7783) 9309 Aufrufe hatte, dann interessiert mich das nicht.
      Mich interessiert nur:
      20:58 ... 22:59: smbd(25905)
      03:30 ... 03:59: rm(7783)

      Usw.

      Gruß,
      ​​​​​​​Hendrik

      Kommentar


        #4
        Im Zweifelsfall in Excel importieren und dann sortieren.

        Kommentar


          #5
          Zitat von henfri Beitrag anzeigen
          die "Spalte" mit dem "rm(7783)" (also executable:PID) nehmen und nur jedes erste, oder die ersten 2-3 Vorkommen anzeigen.

          Kann mir jemand sagen, wie das mit grep oder awk geht?
          Code:
          $ awk '{print $2}' dateiname | sort | uniq
          rm(7783):
          smbd(25905):
          wäre eine Möglichkeit.


          Kommentar


            #6
            Super, danke.
            Hast du noch eine Idee, wie man die Uhrzeit davor erhalten kann?
            Wenn awk die nicht wegfiltert, funktioniert uniq ja nicht...

            Kommentar


              #7
              Brauchst Du alle Uhrzeiten zu der zweiten Spalte, oder jeweils nur das erste (oder die ersten n) Auftreten?

              Evtl. hilft Dir
              Code:
              awk '{print $2" "$1}' /tmp/knxuf.txt | sort
              auch schon weiter. Dann hättest Du Blöcke zu einem Prozess jeweils aufsteigend nach Zeit sortiert.

              Kommentar


                #8
                Zitat von henfri Beitrag anzeigen
                20:58 ... 22:59: smbd(25905)
                03:30 ... 03:59: rm(7783)
                Wenn ich das richtig verstehe willst Du jeweils den Zeitraum (erstes bis letztes Auftreten) je Prozess ermitteln. Wenn es nur eine Handvoll Prozesse sind, dann wir das Ergebnis aus meinem letzten Posting wohl schon ausreichen.

                Bei größerer Anzahl könntest Du sicher auch das Minimum/Maximum der Zeit je Prozess mit awk berechnen, oder alternativ mit einer Pivot-Tabelle in Excel (basierend auf der Ausgabe auf meinem letzten Posting).

                Kommentar


                  #9
                  Hallo,

                  danke, das funktioniert. Uniq kann Felder ignorieren.
                  So sieht das jetzt aus:
                  Code:
                  awk '{print $1" "$2}' fatrace_datapool.txt | uniq -f 1
                  03:30:39.046996 rsync(16954):
                  03:30:39.048131 rsync(16955):
                  03:30:39.048387 rsync(16954):
                  03:30:39.050629 rsync(16955):
                  03:31:21.050380 rsync(16954):
                  04:00:03.881718 snapperd(733):
                  05:00:04.249006 snapperd(5215):
                  06:00:04.617175 snapperd(7856):
                  07:00:04.712218 snapperd(11513):
                  08:00:04.709218 snapperd(13972):
                  09:00:04.705558 snapperd(16622):
                  10:00:04.720333 snapperd(19118):
                  11:00:04.726646 snapperd(21787):
                  12:00:04.713809 snapperd(24614):
                  13:00:04.710375 snapperd(27082):
                  13:53:17.498442 snapperd(18986):
                  14:00:04.705984 snapperd(29726):
                  15:00:04.708922 snapperd(32204):
                  15:18:24.566055 smbd(30776):
                  16:00:04.709819 snapperd(2555):
                  17:00:04.717535 snapperd(5247):
                  17:26:52.406241 smbd(17982):
                  18:00:04.709072 snapperd(7929):
                  19:00:04.731428 snapperd(11482):
                  19:07:27.763098 borg(22730):
                  19:09:36.105614 borg(26433):
                  19:40:16.009044 unknown(17982):
                  19:46:30.900151 smbd(23487):
                  20:00:04.712645 snapperd(13653):
                  20:59:01.151277 smbd(23487):
                  21:00:00.188475 snapperd(14526):
                  Etwas Hintergrund noch:
                  fatrace -c -t -o outputfile erzeugt eine log-Datei mit allen Festplatten zugriffen.
                  Obiges kommando filtert diese. So kann ich sehen, wer oder was meine Festplatte aufweckt.

                  Gruß,
                  Hendrik

                  Kommentar

                  Lädt...
                  X