5. Systemstrategien für kleine und Nur-Lese-Umgebungen
Zurück |  |

## 5. Systemstrategien für kleine und Nur-Lese-Umgebungen

In Abschnitt 3, „Die `rc`-Subsysteme und nur-Lese Dateisysteme“ wurde darauf hingewiesen, dass das `/var`-Dateisystem von `/etc/rc.d/var` konstruiert wurde und die Präsenz eines Nur-Lese-Wurzeldateisystems Probleme mit vielen in FreeBSD gebrächlichen Softwarepaketen verursacht. In diesem Artikel werden Vorschläge für das erfolgreiche Betreiben von cron, syslog, Installationen von Ports und dem Apache-Webserver unterbreitet.

### 5.1. cron

Während des Bootvorgangs wird `/var` von `/etc/rc.d/var` anhand der Liste aus `/etc/mtree/BSD.var.dist` gefüllt, damit `cron`, `cron/tabs`, `at` und ein paar weitere Standardverzeichnisse erstellt werden.

Jedoch löst das noch nicht das Problem, Crontabs über Neustarts des Systems hinaus zu erhalten. Wenn das System neu gestartet wird, verschwindet das `/var`-Dateiystem, welches sich im Hauptspeicher befunden hat und jegliche Crontabs, die Sie hatten werden ebenfalls verschwinden. Aus diesem Grund besteht eine Lösung darin, Crontabs für diejenigen Benutzer zu erstellen, die diese auch benötigen. Dazu sollte das `/`-Dateisystem lesend und schreibend eingehängt und diese Crontabs an einen sicheren Ort kopiert werden, wie beispielsweise `/etc/tabs`. Fügen Sie dann eine Zeile an das Ende der Datei `/etc/rc.initdiskless` hinzu, die diese Crontabs in `/var/cron/tabs` kopiert, nachdem dieses Verzeichnis während der Systeminitialisierung erstellt wurde. Sie werden auch eine Zeile hinzufügen mössen, welche die Besitzer und Berechtigungen auf diesen Verzeichnissen, die Sie erstellen und den dazugehörigen Dateien, die Sie mittels `/etc/rc.initdiskless` kopieren, setzen.

### 5.2. syslog

Die Datei `syslog.conf` spezifiziert den Ort von bestimmten Logdateien, welche in `/var/log` existieren. Diese Dateien werden nicht von `/etc/rc.d/var` während der Systeminitialisierung erstellt. Aus diesem Grund müssen Sie irgendwo in `/etc/rc.d/var` nach dem Abschnitt, der die Verzeichnisse in `/var` erstellt, eine Zeile ähnlich der folgenden hinzufügen:

`#` `touch /var/log/security /var/log/maillog /var/log/cron /var/log/messages` `#` `chmod 0644 /var/log/*`

### 5.3. Installation von Ports

Bevor die notwendigen Änderungen erkärt werden, einen Ports-Baum zu verwenden, ist es notwendig, Sie an die Nur-Lese-Besonderheit Ihres Dateisystems auf dem Flash-Medium zu erinnern. Da dieses nur lesend verfügbar ist, müssen Sie es vorübergehend mit Schreibrechten ausstatten, indem Sie die mount-Syntax, wie in Abschnitt 3, „Die `rc`-Subsysteme und nur-Lese Dateisysteme“ dargestellt wird, verwenden. Sie sollten immer diese Dateisysteme erneut mit nur-Lese-Rechten einhängen wenn Sie damit fertig sind - unnötige Schreibvorgänge auf dem Flash-Medium kann dessen Lebenszeit erheblich verkürzen.

Um es zu ermöglichen, in das Ports-Verzeichnis zu wechseln und erfolgreich `make` `install` auszuführen, müssen wir ein Paketverzeichnis auf einem Nicht-Hauptspeicherdateisystem erstellen, welches die Pakete über Neustarts hinweg im Auge behält. Weil es sowieso nötig ist, Ihre Dateisysteme mit Lese-Schreibrechten für die Installation eines Pakets einzuhängen, ist es sinnvoll anzunehmen, dass ein Bereich Ihres Flash-Mediums ebenfalls für Paketinformationen, die darauf abgespeichert werden, verwendet wird.

Erstellen Sie zuerst ein Verzeichnis für die Paketdatenbank. Normalerweise ist dies `/var/db/pkg`, jedoch können wir es dort nicht unterbringen, da es jedesmal verschwinden wird, wenn das System neu gestartet wird.

`#` `mkdir /etc/pkg`

Fügen Sie nun eine Zeile in `/etc/rc.d/var` hinzu, welche das `/etc/pkg`-Verzeichnis mit `/var/db/pkg` verknüpft. Ein Beispiel:

`#` `ln -s /etc/pkg /var/db/pkg`

Nun wird jedes Mal, wenn Sie Ihre Dateisysteme mit Lese-Schreibrechten einbinden und ein Paket installieren, der Befehl `make` `install` funktionieren und Paketinformationen werden erfolgreich nach `/etc/pkg` geschrieben (da zu diesem Zeitpunkt das Dateisystem mit Lese-Schreibrechten eingebunden ist), welche dann stets dem Betriebssystem als `/var/db/pkg` zur Verfügung stehen.

### 5.4. Apache Webserver

### Anmerkung:

Die Anweisungen in diesem Abschnitt sind nur notwendig, wenn Apache so eingerichtet ist, dass dieser seine PID oder Protokollierungsinformationen ausserhalb von `/var` ablegt. Standardmässig bewahrt Apache seine PID-Datei in `/var/run/httpd.pid` und seine Protokolldateien in `/var/log` auf.

Es wird nun davon ausgegangen, dass Apache seine Protokolldateien in einem Verzeichnis namens ``apache_log_dir`` ausserhalb von `/var` speichert. Wenn dieses Verzeichnis auf einem nur-Lese-Dateisystem existiert, wird Apache nicht in der Lage sein, Protokolldateien zu speichern und wird vermutlich nicht richtig funktionieren. Wenn dies der Fall ist, muss ein neues Verzeichnis zu der Liste der Verzeichnisse in `/etc/rc.d/var` hinzugefügt werden, um dieses in `/var` zu erstellen und um ``apache_log_dir`` nach `/var/log/apache` zu verknüpfen. Es ist auch nötig, Berechtigungen und Besitzer auf diesem neuen Verzeichnis zu setzen.

Fügen Sie zuerst das Verzeichnis `log/apache` zu der Liste von Verzeichnissen hinzu, die in `/etc/rc.d/var` angelegt werden sollen.

Danach tragen Sie die folgenden Befehle in `/etc/rc.d/var` nach dem Abschnitt zum Erstellen der Verzeichnisse ein:

`#` `chmod 0774 /var/log/apache` `#` `chown nobody:nobody /var/log/apache`

Schliesslich löschen Sie das bestehende ``apache_log_dir`` Verzeichnis und ersetzen es mit einer Verknüpfung:

`#` `rm -rf ``apache_log_dir``` `#` `ln -s /var/log/apache ``apache_log_dir```

Zurück |  |
4. Ein Dateisystem von Grund auf neu erstellen | Zum Anfang |

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.