- Mathias Kettner - Linux Expert -Linux Consulting-Linux Training-Linux-Open Source Projects--
DeutschMathias Kettner
Linux from Experts
 

Inhaltsverzeichnis


1 Los geht's1
1.1 Die Sache mit der Armbanduhr1
1.2 Das Besondere an Linux2
1.3 Den Fehler reproduzieren3
1.4 Die exakte Ursache finden5
1.4.1Der Einblick5
1.4.2Spurensuche6
1.4.3Die Wirkungskette6
1.4.4Der wandernde Fehler8
1.4.5Wechselnde Umstände8
1.4.6Reine Geisteskraft9
1.5 Den Fehler beheben9
1.6 Ein Wort zur 2. Auflage10
2 Dokumentation und Recherche13
2.1 Dokumentation14
2.1.1Erste und zweite Hand14
2.1.2Bücher15
2.1.3Man-Seiten15
2.1.4GNU Texinfo18
2.1.5Artikel aus dem Internet19
2.1.6Dokumentation in RPM-Paketen20
2.1.7Request For Comments (RFC)21
2.1.8Dateien unter /usr/share/doc21
2.2 Hilfeartikel, HOWTOs und FAQs22
2.2.1HOWTOs22
2.2.2SUSE-{Supportdatenbank} (SDB)22
2.2.3Die Linux Problem Base23
2.2.4FAQs23
2.3 Newsgruppen und Mailinglisten23
2.4 Das Linux Documentation Project (LDP)24
2.5 Quellcode25
3 Logdateien und Debugausgabe27
3.1 Der System Logging Daemon28
3.1.1Funktionsweise des syslogd28
3.1.2Loggen über das Netzwerk29
3.1.3Meldungen sortieren30
3.1.4Meldungen speichern oder weiterleiten33
3.1.5Erzeugen von Logmeldungen aus Shellskripten34
3.1.6Erzeugen von Logmeldungen aus C-Programmen36
3.2 Logdateien analysieren mit logsurfer36
3.2.1Funktionsweise von logsurfer36
3.2.2logsurfer vorbereiten37
3.2.3logsurfer aufrufen38
3.2.4logsurfer an syslogd anbinden39
3.3 Shellskripte verfolgen mit bash -x41
4 Aktive Diagnose45
4.1 Dateien46
4.1.1Textdateien effizient anzeigen mit less}}48
4.1.2Logdateien anzeigen mit tail -f oder less +F49
4.1.3Sich ändernde Ausgaben anzeigen mit watch50
4.1.4Dateityp feststellen mittels file51
4.1.5Suche innerhalb von Textdateien mit grep52
4.1.6{Konfigurationsdateien abspecken mit grep -Ev '^(#|$)'}}54
4.1.7Dateien dem Namen und Typ nach finden mit find56
4.1.8Schnelles Suchen mit locate statt find58
4.1.9Die Nadel finden: grep, find und xargs60
4.1.10Dateien aus RPM -Paketen untersuchen mit rpm61
4.1.11Fehlende Dateien finden auf der SUSE-CD/DVD63
4.1.12Ort eines Befehls feststellen mit which64
4.1.13änderungen in Textdateien aufspüren mit diff65
4.1.14Texte in Binärdateien finden mittels strings66
4.1.15Binärdateien anzeigen mit hexdump68
4.1.16änderungen in Binärdateien vornehmen69
4.1.17Binärdateien vergleichen mit cmp71
4.2 Festplatten und Dateisysteme72
4.2.1Festplatten und Partitionen anzeigen mit fdisk72
4.2.2Gemountete Dateisysteme anzeigen mit mount74
4.2.3Freien Platz anzeigen mit df75
4.3 Prozesse78
4.3.1Prozessbaum anzeigen mit pstree78
4.3.2Prozessliste mit {ps}80
4.3.3Prozessmonitor top81
4.3.4Prozess-IDs ermitteln mit pidof84
4.3.5Offene Dateien anzeigen mit lsof84
4.3.6Alle Informationen aus erster Hand unter /proc86
4.4 Benutzer und Gruppen88
4.4.1Gruppen eines Benutzers anzeigen mit id88
4.4.2Benutzer und Gruppe eines Prozesses anzeigen mit ps89
4.4.3Alle Gruppen eines Prozesses anzeigen90
4.5 Der Bootvorgang91
4.5.1Der Bootvorgang im kurzen überblick91
4.5.2Bootmeldungen94
4.5.3Booten in andere Runlevel94
4.5.4Systemrettung im Runlevel S96
4.5.5Booten ohne Passwort98
4.5.6Booten ohne Bibliotheken mit der sash99
4.5.7Das SUSE-Rettungssystem102
4.6 Kernel104
4.6.1Version, Lebensalter und Speicherverbrauch105
4.6.2Module106
4.6.3Kernelparameter108
5 Hardwarediagnose109
5.1 Prozessor, Speicher und andere innere Werte110
5.1.1Der Prozessor und /proc/cpuinfo110
5.1.2Informationen aus ACPI111
5.1.3ACPI: Prozessor112
5.1.4ACPI: Stromverbrauch und Akkus113
5.1.5ACPI: Temperatur115
5.1.6Hauptspeicher116
5.1.7Hardwareuhr und Systemzeit , hwclock und date116
5.2 Allgemeines zur Peripherie118
5.2.1Grundprinzip des Prozessorbus118
5.2.2Zugriff auf Peripheriebausteine119
5.2.3Interrupts und /proc/interrupts120
5.2.4IO-Ports und /proc/ioports121
5.3 Bussysteme und Steckkarten122
5.3.1Grundprinzip des Erweiterungsbus122
5.3.2Verschiedene Bussysteme123
5.3.3PCI124
5.3.4Liste aller PCI-Geräte mit lspci125
5.3.5PCI Vendor- und Device-IDs128
5.4 Externe Schnittstellen128
5.4.1Grundprinzip der seriellen Datenübertragung128
5.4.2Serielle Schnittstellen testen mit echo und cat130
5.4.3Serielle Geräte testen über Interrupts132
5.4.4Serielle Geräte testen mit minicom133
5.4.5Die parallele Schnittstelle134
5.4.6Die Tastatur136
5.4.7PS/2 -Maus137
5.4.8Allgemeines zu USB138
5.4.9USB-Diagnose unter Linux143
5.5 Laufwerke148
5.5.1Das Diskettenlaufwerk148
5.5.2Allgemeines zu IDE /ATA und ATAPI151
5.5.3IDE-Diagnose mit Linux152
5.5.4Performancekontrolle bei DMA und PIO156
5.5.5Allgemeines zu SCSI158
5.5.6Einfache SCSI-Diagnose unter Linux158
5.5.7Informationen aus /proc/scsi160
6 Netzwerkdiagnose163
6.1 Einteilung in Schichten163
6.2 Die Hardwareschicht165
6.2.1Netzwerkgeräte165
6.2.2Aktivierung und Konfiguration der Geräte mit ifconfig166
6.2.3Medium und übetragungsart ermitteln mit mii-diag167
6.2.4MAC-Adressen und ARP169
6.2.5Punkt-zu-Punkt Verbindungen mit PPP170
6.3 Das Internetprotokoll (IP)174
6.3.1Grundsätzliches zu IP174
6.3.2Internetadressen175
6.3.3Verbindungstest mit ping182
6.3.4Weitere Möglichkeiten von ping184
6.3.5Bandbreitenschätzung mit bing187
6.3.6Routen verfolgen mit traceroute189
6.4 TCP und UDP191
6.4.1Grundsätzliches zu TCP191
6.4.2TCP-Verbindungen testen mit telnet192
6.4.3Grundsätzliches zu UDP196
6.4.4TCP und UDP testen mit netcat / nc198
6.4.5Sockets und Verbindungen beobachten mit netstat201
6.4.6Offene Ports finden mit nmap204
6.4.7Netzwerkverkehr mithören mit tcpdump206
6.5 Namensauflösung mittels DNS213
6.5.1DNS-Anfrage in Einzelschritten214
6.5.2Probleme mit DNS: Zwei unterschiedliche Symptome215
6.5.3Diagnose von DNS-Problemen216
6.5.4DNS Anfragen mit tcpdump analysieren217
6.6 Diagnose von iptables220
6.6.1Paketfilter und Firewall220
6.6.2Die drei Regelketten221
6.6.3Ketten anzeigen222
6.6.4Paketzähler223
6.6.5Logmeldungen224
6.7 Weitere Diagnosewerkzeuge225
6.8 Ein ausführliches Beispiel226
6.8.1Das Beispiel226
6.8.2Die Wirkungskette227
6.8.3Diagnose mit ping227
6.8.4Link testen mit mii-diag229
6.8.5Routingprobleme229
6.8.6Einwahl per DSL230
6.8.7DNS232
6.8.8POP3-Server233
6.8.9Fazit234
7 Programme und Prozesse235
7.1 Untersuchen von Binaries235
7.1.1Dynamische Bibliotheken unter Linux235
7.1.2Verwendete Bibliotheken auflisten mit ldd238
7.1.3Binaries analysieren mit objdump239
7.2 System- und Bibliotheksaufrufe241
7.2.1Grundsätzliches zu Systemaufrufen241
7.2.2Systemaufrufe protokollieren mit strace242
7.2.3Wichtige Systemaufrufe245
7.2.4Systemaufrufe: Dateizugriffe245
7.2.5Systemaufrufe: Verzeichnisse und Dateiattribute248
7.2.6Systemaufrufe: Netzwerk249
7.2.7Systemaufrufe: UIDs und GIDs250
7.2.8Systemaufrufe: Warten251
7.2.9Systemaufrufe: Erzeugen und Beenden von Prozessen254
7.2.10Systemaufrufe: Speicherverwaltung und übriges257
7.2.11strace in der Praxis258
7.2.12Beispiel: xscanimage als normaler Benutzer verwenden261
7.2.13Bibliotheksaufrufe anzeigen mit ltrace263
7.3 Signale265
7.3.1Was sind Signale?265
7.3.2Signale senden mit kill und killall269
7.3.3Ein kleines Programm zum Testen von Signalen270
7.3.4Segmentfehler (segmentation fault)271
7.3.5Möglichkeiten, mit einem Segmentfehler umzugehen272
7.4 Debugging unter Linux273
7.4.1Was ist ein Debugger?273
7.4.2Der GNU-Debugger gdb274
7.4.3Starten von Programmen unter gdb274
7.4.4Allgemeines zum Aufrufstapel276
7.4.5Aufrufstapel mit gdb untersuchen278
7.4.6Ein chirurgischer Eingriff279
7.4.7Andocken an laufende Prozesse281
7.4.8Untersuchen von Coredumps282
7.4.9Die Bedienung des GNU-Debuggers284
7.4.10Eine spektakuläre Rettungsaktion285
8 An die Quellen291
8.1 Nur kein Respekt!291
8.2 Interpretersprachen vs. Compilersprachen292
8.3 Interpretersprachen293
8.3.1Allgemeines zu Interpretersprachen293
8.3.2Shellskripte294
8.3.3Perl297
8.3.4PHP299
8.3.5Python300
8.4 Compilersprachen302
8.4.1Quellcodes besorgen303
8.4.2Entwicklungswerkzeuge vorbereiten303
8.4.3Fremde Quellen auspacken304
8.4.4In den Quellen recherchieren309
8.4.5Fundstellen im Linux-Kernel314
8.4.6übersetzen der Quellen bei Tarbällen mittels make317
8.4.7autoconf und automake319
8.4.8übersetzen der Quellen bei Source-RPMs324
8.4.9überprüfen der Kompilation326
8.4.10Installieren326
8.4.11Den Fehler festnageln327
8.4.12änderungen machen327
8.4.13printf-Debugging328
8.4.14Debug-Ausgabe in C und C++329
8.5 printf-Debugging im Kernel332
8.5.1Vorbereitungen332
8.5.2Den Kernel übersetzen333
8.5.3Den Kernel installieren333
8.5.4Meldungen ausgeben mit printk334
8.5.5Ein komplettes Beispiel335
8.6 Den Fehler beheben338
8.6.1Einen Patch erstellen338
8.6.2Den Patch testen340
8.6.3Den Patch in das RPM einbauen341
8.6.4Dem Autor den Patch schicken343
9 Performanceprobleme345
9.1 Zeitmessung346
9.1.1Zeitmessung bei Befehlen346
9.1.2Differentielle Zeitmessung349
9.1.3Zeitmessung bei Serverdiensten351
9.1.4Zeitmessung von laufenden Prozessen353
9.2 Speicherengpässe und Swappen356
9.3 Festplatten359
9.3.1Lese- und Positionierungsgeschwindigkeit359
9.3.2Partitionsgrößen360
9.3.3Der Einfluss von Caches360
9.3.4Raw-Devices362
9.4 Einfluss des Dateisystems362
9.5 Netzwerk364
9.5.1Bandbreitenmessung mit iptraf365
9.5.2Laufzeiten messen mit ping371
9.5.3Wartezeiten373
9.5.4Zusammenfassung376
9.6 Kompression von Daten376
9.6.1Grundüberlegungen376
9.6.2OpenSSH377
9.7 Verschlüsselung379
9.7.1Performance unterschiedlicher Algorithmen379
9.7.2Algorithmus wählen bei OpenSSH380
A Handwerkszeug383
A.1 Effizientes Arbeiten mit der Bash383
A.1.1Die Tabulatortaste383
A.1.2Die Historie385
A.1.3Die geschweiften Klammern { und }}386
A.2 Wichtige Funktionen der Shell388
A.2.1Backslashes und Anführungszeichen388
A.2.2Ausgabeumlenkung390
A.2.3Pipes391
A.2.4Kommandoersetzung391
A.3 Texteditoren393
A.3.1vi394
A.3.2joe395
A.3.3jmacs396
A.3.4zile397
A.3.5mcedit398
A.4 Reguläre Ausdrücke399
A.4.1Regeln399
A.4.2weitere Beispiele404
A.4.3einfache und erweiterte reguläre Ausdrücke404
A.5 Hexadezimalzahlen405
A.5.1Der Name405
A.5.2Der Sinn405
A.5.3Das Umrechnen406
A.6 Die Verzeichnisstruktur von Linux407
A.6.1Der Filesystem Hierarchy Standard407
A.6.2Die Rootpartition408
A.6.3Das Wurzelverzeichnis408
A.6.4Die /usr-Hierarchie411
A.6.5Die /var-Hierarchie413
B Alle Werkzeuge415
B.1 Nachinstallieren von Software415
B.2 Diagnosewerkzeuge416
B.3 Entwicklungswerkzeuge423

Navigation


Rückseite


  • € 40,50 / SFR 74,00
  • ISBN: 3-89990-127-4
  • Einstufung: Profi
  • Verlag: SuSE PRESS (heute millin)

Kapitel


1 - Los geht's
2 - Dokumentation und Recherche
3 - Logdateien und Debugausgabe
4 - Aktive Diagnose
5 - Hardwarediagnose
6 - Netzwerkdiagnose
7 - Programme und Prozesse
8 - An die Quellen
9 - Performanceprobleme (neu)
A - Handwerkszeug
B - Alle Werkzeuge (neu)
.

*-*-*

HomepageSitemapImprintTermsDie Tauschzone

© 2008 Mathias Kettner, last updated at 26th of June 2008