Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Einführung
2 Mathematische und technische Grundlagen
3 Hardware
4 Netzwerkgrundlagen
5 Betriebssystemgrundlagen
6 Windows
7 Linux
8 Mac OS X
9 Grundlagen der Programmierung
10 Konzepte der Programmierung
11 Software-Engineering
12 Datenbanken
13 Server für Webanwendungen
14 Weitere Internet-Serverdienste
15 XML
16 Weitere Datei- und Datenformate
17 Webseitenerstellung mit (X)HTML und CSS
18 Webserveranwendungen
19 JavaScript und Ajax
20 Computer- und Netzwerksicherheit
A Glossar
B Zweisprachige Wortliste
C Kommentiertes Literatur- und Linkverzeichnis
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
IT-Handbuch für Fachinformatiker von Sascha Kersken
Der Ausbildungsbegleiter
Buch: IT-Handbuch für Fachinformatiker

IT-Handbuch für Fachinformatiker
Rheinwerk Computing
1216 S., 6., aktualisierte und erweiterte Auflage, geb.
34,90 Euro, ISBN 978-3-8362-2234-1
Pfeil 7 Linux
Pfeil 7.1 Arbeiten mit der Shell
Pfeil 7.1.1 Booten und Login
Pfeil 7.1.2 Virtuelle Terminals
Pfeil 7.1.3 Grundfunktionen der Shell
Pfeil 7.1.4 Hilfefunktionen
Pfeil 7.1.5 Pipes und Ein-/Ausgabeumleitung
Pfeil 7.1.6 Die wichtigsten Systembefehle
Pfeil 7.2 Konfigurations- und Administrationsaufgaben
Pfeil 7.2.1 Syslog und Log-Dateien
Pfeil 7.2.2 Programme automatisch starten
Pfeil 7.2.3 Software installieren
Pfeil 7.3 Automatisierung
Pfeil 7.3.1 Shell-Skripte
Pfeil 7.3.2 Weitere Hilfsmittel
Pfeil 7.4 Editoren
Pfeil 7.4.1 vi
Pfeil 7.4.2 Emacs
Pfeil 7.5 Grafische Benutzeroberflächen
Pfeil 7.5.1 Der X-Server
Pfeil 7.5.2 Desktops
Pfeil 7.6 Netzwerkkonfiguration unter Linux
Pfeil 7.6.1 Grundeinstellungen
Pfeil 7.6.2 TCP/IP-Dienstprogramme
Pfeil 7.6.3 Datei- und Druckserver unter Linux
Pfeil 7.7 Zusammenfassung

Rheinwerk Computing - Zum Seitenanfang

7.2 Konfigurations- und AdministrationsaufgabenZur nächsten Überschrift

Nachdem Sie sich mithilfe der in diesem Kapitel bereits erläuterten Anleitungen ein wenig im Linux-System umgeschaut haben, sollten Sie noch einige fortgeschrittene administrative Aufgaben kennenlernen. In diesem Abschnitt erfahren Sie, wie Sie mit Log-Dateien umgehen, Programme automatisch starten, Software installieren und einen Kernel kompilieren.


Rheinwerk Computing - Zum Seitenanfang

7.2.1 Syslog und Log-DateienZur nächsten ÜberschriftZur vorigen Überschrift

Das Betriebssystem selbst und viele Programme, vor allem Daemons, schreiben Statusinformationen und Fehlermeldungen in Log-Dateien, auch Protokolldateien genannt. Dafür ist der Syslog-Daemon (syslogd) zuständig. Er erhält Protokollinformationen vom System und von diversen Programmen und entscheidet darüber, ob er sie ignoriert, in bestimmte Log-Dateien schreibt oder per Mail versendet.

Syslog-Meldungen bestehen aus drei Komponenten:

  • Facility (Fehlerquelle)
  • Priority (Dringlichkeitsstufe)
  • Message (Warnmeldung)

Die Facility gibt an, von welcher Art Programm oder welcher Systemfunktion der Eintrag stammt. Hier die Standardquellen im Überblick:

  • auth – Authentifizierung
  • authpriv – privilegierte Authentifizierung (root)
  • croncron-Daemon
  • daemon – sonstige Daemons
  • ftp – FTP-Server
  • kern – Kernel
  • local0 bis local7 – frei verfügbar für beliebige Programme
  • lpr – Drucker-Subsystem
  • mail – Mail-Subsystem
  • news – News-Subsystem
  • syslog – interne Syslog-Meldungen
  • uucp – UUCP-Subsystem[Anm.: Unix-to-Unix-Copy ist ein altmodisches Verfahren für Mail und Datenübertragung im Netzwerk, das noch vor der Internet-E-Mail erfunden wurde.]
  • user – Anwendungsprogramme

Die Priority bestimmt die Wichtigkeit der jeweiligen Meldung:

  • emerg – Notfall, System unbrauchbar
  • alert – Alarm, sofortiges Eingreifen erforderlich
  • crit – kritischer Fehler
  • error – normaler Fehler
  • warn – Warnung
  • notice – Hinweis
  • info – normale Information
  • debug – Debugging-Information

Die Message ist ein beliebiger Beschreibungstext.

In eigenen Shellskripten können Sie den Befehl logger benutzen, um Syslog-Meldungen zu erzeugen. Die allgemeine Syntax lautet:

logger [-p [facility:]priority] message

Geben Sie Folgendes ein, um es zu testen:

$ logger -p info Nur Test, kein Fehler

Da Sie keine Facility angegeben haben, steht die Meldung in /var/log/messages:

$ tail –1 /var/log/messages
Apr 23 18:51:32 linuxbox sascha: Nur Test, kein Fehler


Rheinwerk Computing - Zum Seitenanfang

7.2.2 Programme automatisch startenZur nächsten ÜberschriftZur vorigen Überschrift

Linux und andere moderne Unix-Systeme verfügen über die Möglichkeit, beliebige Programme beim Booten automatisch zu starten. Ein kleines Problem besteht nur darin, dass dieses Verfahren in den verschiedenen Systemvarianten unterschiedlich realisiert wurde. Historisch betrachtet lässt sich der Unterschied auf die beiden Unix-Grundströmungen System V und BSD zurückführen, inzwischen zieht er sich aber – und dann auch noch mit einigen Variationen bezüglich der Verzeichniswahl – quer durch die Systeme und Distributionen (zumal es immer schwieriger wird, zu unterscheiden, welche aktuellen Systeme von System V abstammen und welche von der BSD).

Hier wird zunächst jedes der beiden grundsätzlichen Verfahren kurz vorgestellt; anschließend wird es konkret am Beispiel des Webservers Apache demonstriert.

  • System V Init. Diese Bootmethode wird von immer mehr Betriebssystemen der Unix-Familie verwendet, unter anderem auch von Linux. Systeme, die System V Init einsetzen, arbeiten mit unterschiedlichen Runlevels. Ein Runlevel ist ein Systemzustand, in dem jeweils nur bestimmte Prozesse laufen. Beim Wechsel des Runlevels über den Befehl init LEVELNUMMER werden bestimmte Skripte aufgerufen, die manche Programme starten und andere beenden. Einige Runlevel haben eine spezielle Bedeutung:
    • 0: heruntergefahrener Zustand
    • S (manchmal auch 1): Single-User-Modus (für Wartungsarbeiten)
    • 1 (bei vielen Systemen): Multi-User-Modus ohne Netzwerk
    • 2: Multi-User-Modus mit Netzwerk; nur Konsole
    • 3: Multi-User-Modus mit Netzwerk und GUI (klassisch)
    • 5: Multi-User-Modus mit Netzwerk und GUI (Linux)
    • 6: Systemneustart (Reboot)

    Betriebssysteme dieser Bauart besitzen für jedesRunlevel ein spezielles Init-Verzeichnis. Diese Verzeichnisse heißen /etc/rcLEVELNUMMER.d, also etwa /etc/rc1.d für Runlevel 1 oder /etc/rc5.d für Runlevel 5. Die Shell-Skripte in diesen Verzeichnissen werden bei Erreichen des entsprechenden Levels automatisch ausgeführt, und zwar in alphabetischer Reihenfolge. Deshalb verwendet die übliche Konvention Namen, die mit K beginnen, für Kill-Skripte (die einen Prozess beenden) und solche mit S für Start-Skripte. Darüber hinaus bauen viele Daemons aufeinander auf. Deshalb wird hinter dem Anfangsbuchstaben eine zweistellige Zahl verwendet, die für eine bestimmte Reihenfolge sorgt.

    In aller Regel sind die Einträge in diesen Verzeichnissen lediglich Symlinks auf Skripte, die sich eigentlich in einem anderen Verzeichnis befinden; meist in /etc/init.d oder /sbin/init.d. Für den Start und das Beenden des jeweiligen Prozesses wird normalerweise dasselbe Skript verwendet: Ein S-Symlink ruft es automatisch mit der Kommandozeilenoption start auf, ein K-Symlink mit stop. Im Falle von Apache erfüllt das mitgelieferte Shell-Skript apachectl die Voraussetzungen für diese Aufgabe.

    Aus diesem Grund brauchen Sie lediglich für Ihr Standard-Runlevel (3 oder 5) einen S-Symlink auf dieses Skript zu erzeugen. Für die Runlevel 0 und 6 (Herunterfahren beziehungsweise Neustart) können Sie entsprechend einen K-Link anlegen. Da von Apache in der Regel keine anderen Dienste abhängen, können Sie ihn recht spät starten (wählen Sie einen Symlink-Namen wie S95apache) und ziemlich früh beenden (K15apache dürfte in Ordnung gehen).

    Begeben Sie sich also in das jeweilige Runlevel-Init-Verzeichnis, und erstellen Sie die nötigen symbolischen Links. Falls Sie Apache mit Standardoptionen installiert haben und ein Linux-System mit dem Standard-Runlevel 5 verwenden, müssen Sie den folgenden Befehl für den Startskript-Link eingeben:

    # ln -s /usr/local/apache2/bin/apachectl \
    /etc/rc5.d/S95apache


    Als Nächstes werden die Stopp-Links für die Runlevel 0 und 6 erzeugt. Wenn Sie das Layout Apache verwenden, sehen die beiden Befehle so aus:

    # ln -s /usr/local/apache2/bin/apachectl \
    /etc/rc0.d/K15apache

    # ln -s /usr/local/apache2/bin/apachectl \
    /etc/rc6.d/K15apache


    In modernen Linux-Distributionen lässt sich dieser Vorgang weitgehend automatisieren, zumal die meisten wichtigen Programme bereits passende Startskripte mitbringen. Erzeugen Sie unter /etc/init.d einen Symlink zum passenden Startskript, und rufen Sie anschließend chkconfig -a mit dem Namen des Links auf, um das Skript in seinen Standard-Runlevels zu aktivieren. Das folgende Beispiel zeigt die Vorgehensweise für den Datenbankserver MySQL, wenn er unter /usr/local/mysql installiert ist (siehe Kapitel 12, »Datenbanken«):

    # ln -s /usr/local/mysql/support-files/mysql.server \
    > /etc/init.d/mysql
    # chkconfig -a mysql

  • BSD-Startskript. BSD-basierte Unix-Systeme verwenden im Gegensatz zur System-V-Methode einige zentrale Startskripte. Sie befinden sich in Verzeichnissen wie /etc oder /etc/rc.d und heißen rc.boot, rc.local und so weiter. Interessant ist in diesem Zusammenhang das Skript rc.local, das Sie nach Belieben um weitere Startbefehle erweitern können.

    Unter einem solchen Betriebssystem brauchen Sie rc.local also nur mit einem Texteditor zu öffnen und können dann den Aufruf des entsprechenden Steuerskripts (in diesem Fall apachectl) mit dem Parameter start hinzufügen. In rc.local wird normalerweise mit einer Fallunterscheidung nach dem Schema if [-xPFAD] überprüft, ob das aufzurufende Programm oder Skript überhaupt existiert. An diese Konvention sollten Sie sich halten. Falls Sie eine Apache-Standardinstallation verwenden, können Sie folgende Zeilen an rc.local anfügen:

    # Apache 2 starten
    if [ -x /usr/local/apache2/bin/apachectl ]; then
    echo "Starting Apache httpd..."
    /usr/local/apache2/bin/apachectl start
    fi


Rheinwerk Computing - Zum Seitenanfang

7.2.3 Software installierenZur nächsten ÜberschriftZur vorigen Überschrift

Wenn Sie Softwarepakete von den CDs Ihrer Distribution installieren möchten, funktioniert dies mithilfe des Paketmanagers. Der verbreitetste Linux-Paketmanager ist rpm (der Red Hat Packet Manager, der unter anderem auch von openSUSE übernommen wurde). Sie installieren ein solches Paket mithilfe der folgenden Anweisung:

# rpm -i Paketname.rpm

Debian und darauf basierende Distributionen wie Ubuntu verwenden einen anderen Paketmanager. Hier erfolgt die Installation eines Pakets wie folgt:

# apt-get install Paketname

Der wichtigste Vorteil gegenüber rpm besteht darin, dass benötigte Pakete und eventuelle Abhängigkeiten automatisch aus einer Onlinequelle heruntergeladen werden.

Open-Source-Software wird häufig auch als Quellcode-Archiv mit der Dateiendung .tar.gz verbreitet. Dabei handelt es sich um eine Archivdatei (tar für »tapearchive«), die mit GNU zip (gzip) komprimiert wurde. Ein solches Paket wird sinnvollerweise in einen leeren Ordner kopiert und anschließend folgendermaßen entpackt und installiert:

# tar xzvf paket.tar.gz
# ./configure
# make
# make install

In manchen Fällen ist die Endung nicht .tar.gz, sondern .tar.bz2. Das bedeutet, dass die Datei mit bzip2 statt mit gzip komprimiert wurde; die entsprechende tar-Option zum Entpacken ist xjvf statt xzvf.

Das Programm make dient allgemein dazu, automatische Kompilier- und Installationsanweisungen auszuführen: Da die meisten größeren Programmierprojekte aus vielen einzelnen Quelldateien bestehen, muss ein Makefile angeben, wie sie jeweils kompiliert und zusammengestellt werden sollen.

Beachten Sie, dass einige moderne Linux-Distributionen bei einer Standardinstallation die Entwicklungswerkzeuge GCC (GNU C Compiler) und make weglassen. Das ist ärgerlich, weil diese benötigt werden, um Quellcodepakete installieren zu können.

Einen Kernel kompilieren

Mithilfe verschiedener make-Anweisungen können Sie übrigens auch Ihren eigenen Linux-Kernel kompilieren, falls der allgemeine Kernel, den der Distributor mitliefert, Ihre spezielle Hard- oder Software nicht unterstützt.

In den meisten Fällen ist es heutzutage nicht mehr nötig, den Kernel neu zu kompilieren. Verwenden Sie stattdessen das Kommando modprobe Modulname, um das Kernelmodul für die betreffende Hardware dynamisch zu laden. In den meisten Distributionen lässt sich dies auch über grafische Hilfsmittel erledigen und sogar automatisieren.

Wenn Sie dennoch einen Kernel kompilieren möchten oder müssen, prüfen Sie zuerst mithilfe Ihres Paketmanagers, ob die Kernelquellen installiert sind. Danach müssen Sie das Konfigurationsprogramm für die Kernelanpassung aufrufen:

# cd /usr/src/linux
# make xconfig

In einem komfortablen GUI-Programm können Sie sich nun eine Kernelkonfiguration zusammenstellen. Es gibt eine Reihe von Kategorien wie Optimierung für bestimmte Prozessortypen, Netzwerk oder SCSI-Unterstützung. Falls xconfig in Ihrer Distribution nicht enthalten ist, geben Sie make menuconfig ein – es öffnet sich ein ähnliches Programm auf der Konsole.

Im Konfigurationsprogramm können Sie sich bei den meisten Gerätetreibern entscheiden, ob Sie sie fest in den Kernel einkompilieren oder als Module hinzufügen möchten. Letzteres ist für Hardware nützlich, die nicht permanent benötigt wird.

Nachdem die Konfiguration fertiggestellt ist, geben Sie an der Konsole (noch immer im Verzeichnis /usr/src/linux) nacheinander die folgenden Befehle ein:

# make all
# make modules_install

Sollte Ihr Linux-System noch einen älteren Kernel bis Version 2.4.x verwenden, müssen Sie dagegen alle folgenden Kommandos eingeben:

# make dep
# make clean
# make modules
# make modules_install
# make bzImage

Nach der Fertigstellung befindet sich der Kernel in jedem Fall im Verzeichnis /usr/src/linux/arch/i386/boot und heißt bzImage. Er muss nun an die Stelle des bisherigen Kernels kopiert werden, normalerweise in die Datei /boot/vmlinux. Alternativ können Sie ihn auch unter einem neuen Namen ins Verzeichnis /boot kopieren, um beim Booten zwischen mehreren Kernels auswählen zu können. Danach müssen Sie den Bootmanager (GRUB oder LILO) neu konfigurieren. Näheres erfahren Sie in der Dokumentation Ihrer Distribution.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.

>> Zum Feedback-Formular
<< zurück




Copyright © Rheinwerk Verlag GmbH 2013
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de


  Zum Katalog
Zum Katalog: IT-Handbuch für Fachinformatiker






IT-Handbuch für Fachinformatiker
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Katalog: Linux Handbuch






 Linux Handbuch


Zum Katalog: Computer Netzwerke






 Computer Netzwerke


Zum Katalog: Schrödinger lernt HTML5, CSS3 und JavaScript






 Schrödinger lernt
 HTML5, CSS3
 und JavaScript


Zum Katalog: Windows 8.1 Pro






 Windows 8.1 Pro


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo