Tipp: /var/log/* lesbar machen

Dieses Thema im Forum "MacUser Tipps und Tricks" wurde erstellt von IceHouse, 25.08.2003.

  1. IceHouse

    IceHouse Thread Starter MacUser Mitglied

    Beiträge:
    686
    Zustimmungen:
    22
    MacUser seit:
    03.06.2002
    Hallo zusammen,

    ich benutze das Apple Programm "Console" (/Applications/Utilities/) sehr gerne um mir einen schnellen Ueberblick ueber die wichtigsten Logfiles zu verschaffen.

    Nun ist es leider so, das manche Logfiles dort nicht von best. Gruppen gelesen werden duerfen. Das ist Aergerlich, da die Logfiles in der Console dann natuerlich nichts anzeigen, wenn man sie vorher lesbar gemacht und geoeffnet hatte.

    Nun kann man mit einem geschickt gebastelten $SHELLSTRING und einem alias darauf das Problem aber recht praktisch loesen. Wenn man das ganze dann auch noch in die /etc/crontab oder die /sw/etc/anacron reinschreibt, braucht man sich darum nie wieder kuemmern und es wird jeden Tag einmal ausgefuehrt.

    sudo chmod -R 644 /var/log/ && sudo find /var/log/ -type d -exec chmod -R 755 {} \;

    sudo == Ausfuehren der Befehle mit Adminrechten

    chmod -R 644 == Aendere die Zugriffsrechte der Dateien auf -rw-r--r-- und das bitte Rekursiv durch den Verzeichnisbaum /var/log

    && == Verkettung 2er Befehle, wobei der 2te Befehl NUR dann ausgefuehrt wird, wenn der erste Erfolgrreich war.

    find /var/log/ -type d == finde in /var/log/ alle Ordner (type -d) und fuehre dann einen weiteren Befehl aus

    -exec chmod -R 755 {} \; == schiebe das gefundene durch das -exec und wende den Befehl "chmod -R 755" auf den Inhalt von "{}" an - der Befehl "-exec" muss durch "\;" terminiert sein um ein Ende zu finden.

    Als naechstes in der Shell mal nach "cd /var/log/" gehen und dann im Verzeichnis "open ." eintippen und absenden. Im Finder oeffnet sich nun das Logfile Verzeichnis :) Nun kann man bequem die Logfiles per Drag & Drop auf das Console Symbol im Dock ziehen. Nun werdet ihr evtl. feststellen, das man da aber best. Logfiles nicht auf Console im Dock ziehen kann - auch dafuer gibt es einen Trick:

    Logfile aus dem Verzeichnis ziehen, dann mit der linken Hand am Keyboard Apfel & Alt herunterdruecken und halten, waehrend man das Logfile auf das Consolesymbol im Dock zieht - nun sollte es gehen.

    Diesen Trick kann man im gesamten System mit allen Applikationen anwenden - aber Vorsicht: Es macht evt. nicht wirklich Sinn, ein UNIX Binary wie "ls" mit TextEdit zu oeffnen :)

    Nun, ab sofort also nie wieder unlesbare Logfiles in /var/log :)

    Viel Spass
    -=IceHouse=-
     
  2. Woulion

    Woulion MacUser Mitglied

    Beiträge:
    1.310
    Zustimmungen:
    0
    MacUser seit:
    06.06.2002
    Hi Ice

    Klasse Beitrag, ich wünschte mir, wir hätten mehr in der Qualität hier im Forum. Eigentlich wäre das auch ein Kandidat für die FAQs, aber ich habe so meine Zweifel ob das "frequently" gefragt wird.

    Weiter so

    W
     
  3. Maurus

    Maurus MacUser Mitglied

    Beiträge:
    287
    Zustimmungen:
    0
    MacUser seit:
    01.10.2002
    Hallo IceHouse!
    hm..Interessanter beitrag :)

    ..aber etwas verstehe nicht!
    so wie ich das sehe ändert der shellstring 2mal die rechte der logfiles...wozu? und was macht das "-exec" ? kannst du das evtl. nochmals etwas genauer erklären? danke!

    gruss Maurus
     
  4. IceHouse

    IceHouse Thread Starter MacUser Mitglied

    Beiträge:
    686
    Zustimmungen:
    22
    MacUser seit:
    03.06.2002
     

    sudo chmod -Rf 644 /var/log/ && sudo find /var/log/ -type d -exec chmod 755 {} \;

    Blau: Aendere die Rechte (chmod) aller Elemente (Dateien und Ordner), rekursiv (-R), ohne Ausgabe (-f) auf 644
    Ergebnis: Alles steht im Baum "/var/log/" auf -rw-r--r--, auch die Ordner - deswegen kommt nun der Rote Teil:

    Gruen: Verbinde beide Befehle und fuehre den 2ten nur dann aus, wenn ersterer ohne Error durchgelaufen ist.

    Rot: finde AB "/var/log/" den Typ "Ordner" und schicke das Erbebnis "{}" mit "-exec" an ein nachfolgendes Utility (chmod).
    Ergebnis: Alle Ordner im Baum "/var/log/" werden auf das Recht drwxr-xr-x gesetzt, sodass man wieder in die Ordner "hinein" kann :)

    Wer es subtiler mag, kann natuerlich auch folgendes verwenden:

    sudo find /var/log/ -type f -exec chmod 644 {} \; && sudo find /var/log/ -type d -exec chmod 755 {} \;

    Wir muessen auf jeden Fall sicherstellen, das auch die Ordner von der Gruppe betreten werden duerfen, sonst kommen wir zum lesen nicht an einige Logfiles heran.

    Gruss
    -=IceHouse=-
     
  5. Hairfeti

    Hairfeti Banned

    Beiträge:
    462
    Zustimmungen:
    0
    MacUser seit:
    08.11.2003
    Würde es denn ...

    ... so nicht auch funktionieren?

    chmod 777 /var/log/* ?

    Alle Dateien im Verzeichnis können ausgeführt und von jedem gelesen und beschrieben werden. Die Verzeichnisse durch die gechmodet wird, bleiben doch davon unberührt und brauchen nicht zusätzlich in ihren Benutzerrechten geändert werden.

    Ist zwar schon lange her, hoffentlich liest du das auch ...

    Ansonsten aber ein toller Beitrag von dir. Du beschäftigst dich wohl mit dieser Materie? Solche Bekanntschaften kann ich gebrauchen.

    Hoffe du läßt was von dir hören ...
     
  6. Linuxuser

    Linuxuser MacUser Mitglied

    Beiträge:
    87
    Zustimmungen:
    0
    MacUser seit:
    28.10.2003
    Ich benutze auch gerne (unter Linux) ein befehl names tail...

    Damit könnt ihr zB die Einträge in einem Logfile aktiv beobachten...
    ein tail -f /var/log/messages beginnt bei den letzten Einträgen in dem Logfile und zeigt automatisch bis zum beenden von tail alle neu hinzu kommenden Einträge an....
    zB bei den Webserverlogs kann das interessant sein :)
     
  7. Sorn

    Sorn MacUser Mitglied

    Beiträge:
    208
    Zustimmungen:
    0
    MacUser seit:
    16.02.2003
    Andere Frage:

    Kann man unter MacOS im Terminal nicht per "su" root werden und sich dann die Logdateien anschauen? (ich habe keinen Mac und kann es nicht ausprobieren).

    Die hier genannte Methode kommt mir ein wenig umständlich vor.

    Also per su Root-Rechte erhalten und dann mit less oder tail -f in die Logs sehen.

    jm2c

    Lars
     
  8. Sorn

    Sorn MacUser Mitglied

    Beiträge:
    208
    Zustimmungen:
    0
    MacUser seit:
    16.02.2003
  9. M4DM3N

    M4DM3N MacUser Mitglied

    Beiträge:
    1.658
    Zustimmungen:
    6
    MacUser seit:
    11.12.2003
    guter Beitrag IceHouse! Danke für die Informationen... man lernt immer wieder was dazu ;)
     
  10. cilly

    cilly Gast

    Es geht auch einfacher, indem man im Terminal die Console mit sudo startest:
    Code:
    sudo /Applications/Utilities/Console.app/Contents/MacOS/Console
    Da die Logfiles immer wieder frisch von periodic daily, weekly und monthly angelegt werden, müsste man diese nach jedem dieser Maintenance-Skripte wieder umstellen oder gleich in den periodic-Skripten ändern.
    Code:
    diskutil repairPermissions /
    würde diese Rechte auch wieder verwerfen.

    Die Rechte der Logfiles haben durchaus ihre Berechtigung und man sollte sich vorher genau überlegen, ob man sie ändern möchte.

    pepp carro banana cumber