====== Linux System Information Tools ====== Linux kennt viele verschiedene Werkzeuge, um nützliche Informationen über das System zu sammeln und überwachen. Diese kennt man aber in der Regel nicht einfach so auswendig. Der Artikel stellt deshalb eine kleine Zusammenfassung über die gängigsten Tools, die auf ziemlich jedem Linux-System standardmässig installiert sein sollten, dar. ===== Diverse Informationen ===== Informationen über das aktuell verwendete Betriebssystem liefert der Befehl ''uname''. uname -a # Alle Informationen uname -m # Systemarchitektur Um den Hostname der Maschine anzuzeigen einfach ''hostname'' eingeben. hostname Welche Kernelmodule geladen sind steht in der Datei ''/proc/modules''. less /proc/modules ===== CPU Informationen ===== Informationen über die CPU bekommt man durch das Tool ''lscpu''. lscpu Möchte man lediglich die Anzahl der verfügbaren Prozessorkerne wissen: nproc Um die Wortbreite oder Busbreite („ist meine CPU 32- oder 64-bit?“) anzuzeigen: getconf LONG_BIT Eine alternative Variante ist durch das Proc-File ''/etc/cpuinfo'' gegeben. Mit ''cat'' wird sein Inhalt in der Konsole angezeigt: cat /proc/cpuinfo ===== RAM Informationen ===== Für Informationen über die Speicherbelegung im Memory zieht man das Tool ''free'' bei: free -h Auch über das RAM sind weitere Informationen in einem Proc-File ''/proc/meminfo'' zu finden. cat /proc/meminfo ===== Block Devices ===== ==== Verfügbare Block Devices herausfinden ==== Unter Linux ist grundsätzlich jedes Speichergeräte (Harddisk, USB-Stick) ein Block Device. Das Tool ''lsblk'' listet auf, welche Block Devices aktuell verfügbar sind. Dies hilft beispielsweise herauszufinden, unter welchem Block Device sich der eben eingesteckte USB-Stick „versteckt“. lsblk ==== Speicherplatzbelegung ==== Um eine Übersicht über den freien Speicherplatz des Systems (das heisst auf sämtlichen Dateisystemen) zu erhalten hilft das Tool ''disk free'' (''df''). Für eine gut lesbare Ausgabe inkluse Dateisystem-Typ sorgen die beiden Parameter ''h'' und ''T''. df -hT Soll jedoch bloss die Grösse eines bestimmten Ordners eingesehen werden, ist man mit ''disk usage'' (''du'') bedient. Ohne Parameterangaben listet du die Grösse des aktuellen Ordners sowie sämtlicher Unterordner auf. Folgender Befehl gibt die Grösse des gesamten Ordners ''~/Downloads'' in gut lesbarem Format aus: du -sh ~/Downloads Manchmal möchte man wissen, welche Dateien am meisten Platz belegen. Dazu kann man (unter Verwendung von entsprechenden Parametern) die Ausgabe von ''du'' einfach nach ''sort'' umleiten: du -ach ~/Downloads/ | sort -h # Liste aufsteigend sortieren du -ach ~/Downloads/ | sort -hr # Liste absteigend sortieren ===== BUS-Geräte ===== ==== PCI Devices ==== Sämtliche verfügbare PCI-Geräte lassen sich mit ''lspci'' herausfinden. lspci Dies ist allerdings (oft) etwas unübersichtlich. Abhilfe kann da grep schaffen. Durchsucht man die Ausgabe von ''lspci'' mittels ''grep'' beispielsweise nach „VGA“, erhält man Informationen über die Grafikkarte. lspci | grep VGA ==== USB Devices ==== Es gibt auch ein ls-Befehl für USB-Geräte: lsusb ===== Systemperformance ===== ''top'' bietet eine Übersicht, welcher Prozess oder Benutzer welche Systemresourcen belegt (unter Windows allgemein als Task Manager bekannt). top Ist man interessiert, wie viel Zeit ein Programm zur Ausführung braucht, kann man dies mit ''time'' messen. time firefox ===== Dateien finden ===== ==== Normale Dateien ==== In der Kommandozeile sucht man nach Dateien mit ''find''. Üblicherweise gibt man als Parameter das Verzeichnis, in welchem man suchen möchte, sowie den gesuchten Dateinamen an. Auf dem Wurzelverzeichnis ''/'' nach der Datei ''sample.pdf'' suchen: find / -name sample.pdf Im Ordner ''~/Downloads'' nach sämtlichen pdf-Dateien suchen: find ~/Downloads -name "*.pdf" ==== Ausführbare Dateien ==== Möchte man den genauen Dateipfad einer ausführbaren Datei ausfindig machen, kann man es mit ''which'' versuchen. which firefox ==== Geöffnete Dateien ==== Manchmal blockieren geöffnete Dateien beispielsweise Unmount- oder Löschvorgänge. Welche Datei von welchem Prozess gerade geöffnet ist, kann mit ''lsof'' oder ''fuser'' ermittelt werden. Dies zeigt alle geöffneten Dateien im Verzeichnis ''/mnt/usb'' an: lsof /mnt/usb Same thing but different: fuser /mnt/usb -u fuser kann auch anzeigen, welche Prozesse auf ein bestimmtes Block Device zugreifen: fuser -m /dev/sdb1 ===== Netzwerkinformationen ===== ==== IP-Adresskonfiguration ==== Welches Netzwerkinterface besitzt welche Netzwerkkonfiguration? ip addr ==== Netzwerkverbindungen ==== Mit dem Tool netstat können sämtliche Netzwerkverbindungen angesehen werden. netstat -a # zeigt alle Verbindungen netstat -lp # zeigt abhörende Sockets sowie deren Prozess ==== ARP- und Routingtables ==== Befehl zur Ausgabe der Gateways: netstat -r Befehl zur Ausgabe der ARP-Tabelle: arp ===== Sensoren ===== Ein verbreitetes Tool zur Sensorauslesung ist [[http://www.lm-sensors.org|lm_sensors]], welches aber bei den meisten Distributionen standardmässig nicht mitgeliefert wird. Arch-Benutzer installieren das Paket ''lm_sensors'', bei Debian heisst das Paket ''lm-sensors''. Danach kann es mit dem Befehl ''sensors'' benutzt werden. sensors ===== Installierte Softwarepakete anzeigen ===== ==== Arch Linux (pacman) ==== Auf Arch Linux geht das mit ''pacman''. Alle installierten Pakete anzeigen: pacman -Qe Nach einem spezifischen Paket suchen: pacman -Qe firefox ==== Debian / Ubuntu (apt-get / dpkg) ==== Der Befehl zeigt installierte Pakete (install), aber auch bereits wieder deinstallierte Pakete (deinstall) an: dpkg --get-selections Um auch wirklich nur installierte Pakete anzuzeigen hilft uns ''grep'' weiter. dpkg --get-selections | grep -v deinstall Natürlich kann auch hier nach einem spezifischen Paket gesucht werden: dpkg --get-selections firefox # alternativ: dpkg --get-selections firefox | grep -v deinstall ===== Logging ===== Das allgemeine Logverzeichnis ''/var/log'' beinhaltet Logdateien von System und Programmen und ist deshalb oft eine nützliche erste Anlaufstelle bei Problemen. Logfiles kann man mit ''tail'' "live" mitverfolgen, um immer über die aktuellsten Logs informiert zu bleiben. tail /var/log/Xorg.0.log -f # Fortlaufend Logmeldungen ausgeben Die letzten Meldungen des Kernels können direkt mit dmesg angezeigt werden: dmesg | less Unter ''systemd'' kann man die Logs mit ''journalctl'' anschauen: # journalctl -f # Fortlaufend Logmeldungen ausgeben ===== Benutzerinformationen ===== Ist man sich nicht sicher, mit welchem User man gerade arbeitet: whoami Der Befehl ''w'' zeigt die auf dem System angemeldeten Benutzer an und was diese gerade tun. w Um zu sehen, wer sich zuvor auf dem System eingeloggt hat, sowie wann das System heruntergefahren oder neu gestartet wurde, kann der Befehl ''last'' verwendet werden. last | less ---- dataentry topic ---- type : topic advanced_users : cyrus, maenu beginner_users : # wannabe_users : # category_topictags : # ----