Linux/Sichern und Wiederherstellen

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Manchmal ist es nötig, eine Webpräsenz am Server in ein Archiv zu sichern um es ggf. auf den lokalen Rechner herunterzuladen. Dies ist z. B. der Fall, wenn Sie Services anbieten, bei denen Benutzer Dateien hochladen können, oder Texte dynamisch speichern können (z. B. bei Gästebuchern, Foren, Datenbanken). Sie könnten die Dateien zwar einzeln per FTP auf Ihren Rechner laden. Die Möglichkeit, direkt auf dem Server ein komprimiertes Archiv zu erzeugen, welches anschließend gedownloadet wird, ist aber viel eleganter.

Sichern und Wiederherstellen mit tar

Kommando Abkürzung Erläuterung
tar tape archiver Dateien Archivieren und wiederherstellen

tar ist eigentlich ein Programm zur Bandsicherung. Mittlerweile ist es aber auch sehr gut geeignet um Archive (sog. tarballs) ganzer Verzeichnisbäume zu erstellen.

Beispiel
you@dort:~/featureartikel$ tar cvzf sicherung.tgz *<ENTER>
index.html
meinverzeichnis/
script.pl
test.html
text1.txt
text2.txt
titelleiste_mitte.gif
titelleiste_oben.gif
titelleiste_unten.gif
verlinktetextdatei.txt
you@dort:~/featureartikel$ ls -l sicherung.tgz<ENTER>
-rw-r--r--    1 you wwwusr    30107 Feb  3 00:50 sicherung.tgz
you@dort:~/featureartikel$
Das Kommando tar cvzf sicherung.tgz * schreibt alle Dateien und Unterverzeichnisse des aktuellen Arbeitsverzeichnisses automatisch rekursiv in eine Archivdatei (sicherung.tgz) und komprimiert diese anschließend. Beachten Sie hierbei, dass Links auch wirklich nur als Links gesichert werden. Die Zieldatei sichert tar nur mit, wenn sie sich unter den zu sichernden Dateien befindet! Den erstellten Tarball können Sie dann mit dem Browser downloaden und auf ihrer Festplatte speichern.

Die verwendeten Schalter werden in der folgenden Tabelle erklärt:

tar-Schalter Abkürzung Erläuterung
c create Archiv erstellen
v be verbose Meldungen ausgeben
f file angegebene Datei verwenden
z zip Kompression
x extract Dateien aus Archiv holen

Der x-Schalter kann anstelle von c verwendet werden, um die Dateien wiederherzustellen.

Beachten Sie, dass Sie den Entpackvorgang in dem Verzeichnis ausführen, in dem Sie auch gesichert haben, da evtl. enthaltene Unterverzeichnisse relativ zum Arbeitsverzeichnis wiederhergestellt werden!

Arbeiten mit Links

Eine schöne Eigenschaft des Linux-Dateisystems ist die Möglichkeit, Links auf Dateien und Verzeichnisse zu erstellen. Ein Link ist ein Zeiger auf eine Datei oder ein Verzeichnis irgendwo im lokalen Dateisystem. Er wird allerdings genauso behandelt wie das „Ding“, auf das er zeigt. Man kann also aus einer „Linkdatei“ lesen oder in sie hineinschreiben wie in die Datei, auf die sie verweist. Die Änderungen an der „Linkdatei“ wirken sich unmittelbar auf die verlinkte Datei aus, weil die Datei an sich nur einmal existiert. Sie sollten zunächst immer sog. symbolische Links verwenden. Dadurch wird eine Ausgabe von ls -l immer das Ziel eines Links mit einem Pfeil markiert anzeigen, zum Beispiel verlinktetextdatei.txt -> text1.txt. Außerdem können symbolische Links auch auf Verzeichnisse zeigen, was „harte“ Links nicht dürfen.

Symbolische Links eignen sich bei Web-Angeboten beispielsweise prima, um eine Datei (ggf. auch an mehreren Stellen) im HTTP-Verzeichnisbaum zu behalten, die aus organisatorischen Gründen eigentlich an einer ganz anderen Stelle im Verzeichnisbaum des Systems abgelegt ist – es kann allerdings sein, dass sie den Webserver so konfigurieren müssen, dass er symbolischen Links „folgt“.

Kommando Abkürzung Erläuterung
ln link Einen Dateisystemlink erstellen
Beispiel
you@dort:~/featureartikel$ cat text1.txt<ENTER>
Inhalt der Textdatei1

you@dort:~/featureartikel$ ln -s text1.txt verlinktetextdatei.txt<ENTER>
you@dort:~/featureartikel$ ls -l verlinktetextdatei.txt<ENTER>
lrwxrwxrwx    1 you wwwusr        9 Feb  3 00:32 verlinktetextdatei.txt -> text1.txt

you@dort:~/featureartikel$ cat verlinktetextdatei.txt<ENTER>
Inhalt der Textdatei1
Zunächst wird der Inhalt der Datei text1.txt angezeigt. Mit ln -s gefolgt von der Zieldatei und dem Namen des zu erstellenden Links (also der "virtuelle" Dateiname) wird ein symbolischer Link erstellt. Die Ausgabe von ls -l verlinktetextdatei.txt zeigt, dass der Link erstellt worden ist. Dies kann man an dem "l" in der Rechtespalte und an dem Pfeil mit dem Namen der Zieldatei erkennen (so wird dargestellt, wohin der Link zeigt). Die Ausgabe des Inhaltes unseres Links bringt den Inhalt der Zieldatei text1.txt auf den Bildschirm.
Es ist auch möglich, mit dem ln-Kommando auf eine gleichnamige Datei in einem anderen Verzeichnis zu verweisen: you@dort:~/featureartikel$ ln -s ../anderesverzeichnis/text.txt text.txt<ENTER> bewirkt einen Link auf eine Datei text.txt in einem anderen Verzeichnis, wobei der Linkname, also der virtuelle Name im aktuellen Verzeichnis ebenfalls text.txt lautet. Wenn Sie das zweite Argument (text.txt) weglassen, wird der Name der Zieldatei automatisch für den Linknamen hergenommen.
Hinweis:

In der Rechtespalte der ls-Ausgabe sehen Sie, dass alle Rechte gesetzt sind. Dies ist kein Fehler! Symbolische Links übernehmen die Rechte der Zieldateien vollständig!

lynx – ein textbasierter Browser

Manchmal möchte man bei der Arbeit an der shell kurz auf irgendeiner Webseite etwas nachschlagen, oder eine Datei herunterladen. Was viele nicht gedacht hätten: es gibt sogar einen (eigentlich mehrere) Webbrowser die im Textmodus arbeiten! Der Standardbrowser lynx ist auf den meisten Systemen installiert.

Aufruf von lynx
you@dort:~/featureartikel$ lynx http://www.google.de/<ENTER>
Dieser Aufruf startet den Browser mit der angegebenen Webseite (hier die Suchmaschine google). Mit den Cursortasten können Sie von Link zu Link springen. Wenn Sie auf ein Formularfeld treffen, fragt lynx nach der Eingabe. Wenn Sie auf einem Link stehen und die Entertaste drücken, wird dieser angesteuert. Handelt es sich um eine nicht anzeigbare Datei, fragt lynx nach dem Speicherort und startet nach dem Bestätigen den Download. Mehr Informationen über die Steuerung des Browsers enthält die Hilfe, die Sie durch Eingabe von man lynx aufrufen.