Präzise Kontrolle
Anwendungen und Prozesse mit Bordmitteln optimal steuern
Geöffnete Dateien
Haben Sie schon mal vergeblich versucht, eine CD auszuwerfen, da diese noch in Verwendung war? Der Befehl Lsof zeigt eine Liste aller offenen Dateien. Mit lsof Mountpunkt
erhalten Sie diese Liste für das entsprechende Dateisystem. Handelt es sich beim Argument nicht um den Mountpunkt, listet Lsof statt dessen exakt, welche Prozesse das angegebene Verzeichnis oder die angegebene Datei geöffnet haben. Mit lsof +D Verzeichnis
liefert der Befehl eine Liste aller Prozesse, die das Verzeichnis oder darin befindliche Dateien und Verzeichnisse geöffnet haben.
So finden Sie mit lsof /cdrom oder lsof /media/cdrom schnell hinaus, wer das Auswerfen eines Datenträgers verhindert. Mit lsof -t erhalten Sie nur die Prozessnummern. So beenden Sie mit kill $(lsof -t /cdrom) in einem Rutsch alle Prozesse, die noch auf das eingelegte Medium zugreifen. Schauen Sie jedoch lieber vorher genauer nach, um welche es sich dabei handelt.
Gesprächige Protokolle
Viele im Hintergrund laufende Dienste schreiben Informationen über ihre Aktivitäten oder auftretende Fehler in eine Protokolldatei. Diese finden Sie in der Regel im Verzeichnis /var/log. Meldungen von Diensten nimmt der Syslog-Dienst entgegen. Für die des Kernels zeichnet Klog verantwortlich. Viele Distributionen setzen mittlerweile jedoch Syslog-ng ein, das beide ersetzt.
Die Konfigurationsdateien /etc/syslog.conf beziehungsweise /etc/syslog-ng/syslog-ng.conf legen fest, in welche Datei ein Protokolldienst bestimmte Meldungen schreibt. So landen in /var/log/messages – bei Debian auch /var/log/syslog – üblicherweise die Nachrichten vom Kernel, Kernel-Modulen und grundlegenden Diensten. Einige Dienste, wie Apache, MySQL oder Cups, verwenden dagegen eigene Protokolldateien.
Ein via Cronjob aufgerufenes Programm namens Logrotate benennt jede von ihm verwaltete Datei regelmäßig um und erstellt eine neue, leere Datei. Alte Dateien packt es mit Gzip, um Speicherplatz zu sparen. Protokolldateien mit einem bestimmten Alter löscht es, um Platz auf der Partition zu sparen.
Sie betrachten solche Protokolldateien am einfachsten mit einem Pager, wie Less oder More. Zless arbeitet auf mit Gzip gepackten Daten, während Bzless mit Bzip2 gepackte Dateien darstellt. Der Pager Most hat diese Funktionalität bereits eingebaut. Bei Less rüsten Sie diese bei Bedarf mit eval $(lesspipe) nach. Schreiben Sie diese Zeile in Ihre ~/.bashrc, um die Änderung permanent zu machen.
Manchmal ergibt es Sinn, ein Protokoll live mitzuverfolgen. Mit tail -f Datei
bekommen Sie das Ende einer Datei angezeigt. Durch die Option -f wartet der Befehl auf weitere Meldungen, bis Sie [Strg]+[C] drücken. Versuchen Sie dies mit tail -f /var/log/messages oder unter Debian auch mit tail -f /var/log/syslog gleich einmal. Drücken Sie ein paar mal die Eingabetaste, um einige Leerzeilen einzufügen. Verschaffen Sie sich nun mit su in einer anderen Shell Root-Rechte: Sofort taucht die neue Meldung im Protokoll auf (Abbildung 3).
Viele Server-Dienste erlauben es, die Geschwätzigkeit der Meldungen einzustellen. Funktioniert ein Dienst nicht wie erwartet, und offenbart das Protokoll die Ursache des Fehlers nicht, erhöhen Sie den Umfang des Outputs. Suchen Sie dazu in den Konfigurationsdateien des Dienstes nach den Stichworten log, level, verbose oder verbosity, und ziehen Sie die Dokumentation des Dienstes zu Rate. Vergessen Sie nicht, zum Beispiel mit Hilfe des Init-Skriptes die Konfiguration des Dienstes neu zu laden.



