Zeitgesteuerte Sicherung mittels wget inkl. Protokoll: Unterschied zwischen den Versionen

Aus
Zeile 59: Zeile 59:


<pre>
<pre>
-P, --directory-prefix=PREFIX  
'''-P, --directory-prefix=PREFIX'''
Dateien unter dem Verzeichnis PREFIX/... speichern
Dateien unter dem Verzeichnis PREFIX/... speichern


-nv oder --non-verbose
'''-nv oder --non-verbose'''
Es werden weniger meldungen ausgegeben.
Es werden weniger meldungen ausgegeben.


-m oder --mirror
'''-m oder --mirror'''
Aktiviert Optionen, die zum Erstellen eines Mirrors (Spiegels) einer Website notwendig sind.  
Aktiviert Optionen, die zum Erstellen eines Mirrors (Spiegels) einer Website notwendig sind.  
Folgende Optionen werden aktiviert: -r -N -l inf --no-remove-listing
Folgende Optionen werden aktiviert: -r -N -l inf --no-remove-listing


-o Datei oder --output-file=Datei
'''-o Datei oder --output-file=Datei'''
Protokoll-Meldungen werden in die angegebene Datei geschrieben.  
Protokoll-Meldungen werden in die angegebene Datei geschrieben.  
Wenn die Datei bereits existiert, wird sie überschrieben.
Wenn die Datei bereits existiert, wird sie überschrieben.
 
'''
-q oder --quit
-q oder --quit'''
Es werden keine Meldungen ausgegeben.
Es werden keine Meldungen ausgegeben.


bei mirror (-r -N -l inf --no-remove-listing)
'''bei mirror''' (-r -N -l inf --no-remove-listing)


-r oder --recursive
'''-r oder --recursive'''
Der Download findet rekursiv statt. Verlinkte Seiten oder Unterverzeichnisse werden ebenfalls  
Der Download findet rekursiv statt. Verlinkte Seiten oder Unterverzeichnisse werden ebenfalls  
heruntergeladen. Verweise auf andere Webseiten wird gefolgt. Diese Option ist mit Vorsicht zu verwenden.
heruntergeladen. Verweise auf andere Webseiten wird gefolgt. Diese Option ist mit Vorsicht zu verwenden.

Version vom 31. Dezember 2013, 13:08 Uhr

Einleitung

Mit dem Kommandozeilenprogramm wget lassen sich nicht nur einzelne Dateien, sondern auch komplette Verzeichnisstrukturen herunterladen. In Verbindung mit dem "cron-Daemon" kann man so eine automatisierte Sicherung durchführen, die über das http, https oder das ftp Protokoll erreichbar sind. Mittels "nail" erhält man auf Wunsch eine Bestätigungsmail mit angehangenem Protokoll. Als Beispiel wird im Folgenden die automatisierte Sicherung eines Webspaces bei einem Internet-Service-Providers (ISP) beschrieben. Weitere Szenarien sind denkbar.

Anmerkung

Mit "wget" kann man recht einfach, mittels "ftp", ganze Verzeichnisstrukturen von entsprechenden ISP's (Internet Service Providern) kopieren. "Wget" ist jedoch nicht in der Lage, Dateien die auf einem ISP-Server gelöscht wurden, auch im Ziel zu löschen. Es ist sozusagen nur ein "Zuwachsbackup" möglich. Auch die Benutzerrechte einer Datei, die sogenannten "permissions" werden nicht mit übertragen.

Voraussetzungen

Schritt 1: Nail installieren

Um die Durchführung des Sicherungsauftrages mit eine E-Mail bestätigen zu können, benötig man das Kommandozeilenprogramm "nail", da der Systemroot von Hause aus keine eigene E-Mail Adresse besitzt! Wer hierauf verzichten kann, kommt auch ohne "nail" aus, muss aber das nachfolgende Script um die Mailfunktion einkürzen. Für die Installation und Einrichtung von "nail" verweise ich an dieser Stelle auf das dementsprechenden Wiki Mit Nail ein E-Mail verschicken. Das Protokoll wird im Ordner var/log/ abgelegt.


Schritt 2: Erstellen des Scriptes

Anlegen des Scriptes "S99wget-isp2ds.sh" im Ordner /opt/bin/

- Inhalt des Scriptes /opt/bin/S99wget-isp2ds.sh

  
#!/bin/sh
wget -m -nv -o /var/log/wget.record.log -P /volume[x]/[SICHERUNGSZIEL]/ ftp://[USER]:[PASSWORD]@[DOMAIN].[TLD]/
    
cat /var/log/wget.record.log | grep -v listing > /var/log/wget.filtered-mail.log
    
dat_now=`date +%d-%m-%Y_%H:%M:%S`
    
/opt/bin/nail -s "Der ISP wurde am $dat_now gesichert" -a /var/log/wget.filtered-mail.log [E-MAIL]@[DOMAIN].[TLD]

Erläuterung zur Arbeitsweise des Scriptes

Das Backup wird durch die "wget"-Anweisung gestartet. Die Option "-m" aktiviert die Optionen, die zum Erstellen eines Mirrors (Spiegels) einer Website notwendig sind. Folgende Optionen werden durch diese Option mit aktiviert: -r -N -l inf --no-remove-listing !

Beim Durchlauf von "wget" wird mit der Option "-o /var/log/wget.record.log" eine Datei angelegt, die jegliche Aktion von "wget" protokolliert. Die Option "-nv" sorgt jedoch dafür, das nur die wichtigsten Aktionen protokolliert werden.

Ist das Backup abgeschlossen, wird das entstandene Protokoll "wget.record.log" nochmals eingekürzt, indem alle Zeilen die das Wort "listing" mitführen, gelöscht werden und in eine neue neue Datei, mit dem Namen "wget.filtered-mail.log" gespeichert werden.

Zum Abschluss wird eine Bestätigungsmail generiert, die als Anhang das Protokoll "wget.filtered-mail.log" mitführt.


Schritt 3: Script ausführbar machen

chmod 755 /opt/bin/S99wget2backup.sh


Schritt 4: Cron konfigurieren!

Mit Hilfe von "cron" kann man nun das ganze automatisieren um z.B. eine wöchentliche Sicherung einzurichten. Da die Konfiguration von cron bereits hier im Wiki beschrieben ist, verweise ich abermals an dieser Stelle dorthin. Als "command" -Befehl wird in der crontab der Pfad zu dem Script angegeben.

Hier ein Beispiel für den Eintrag in die crontab. Ausführung des Scriptes, jeden Sonntag um 21:30 Uhr!

------------------------------------------------------------------------------------------------------
#minute hour    mday    month   wday    who     command
30      21       *       *       0       root   /opt/bin/S99wget-isp2ds.sh
------------------------------------------------------------------------------------------------------

Anhang: Erläuterung der verwendeten wget Optionen

'''-P, --directory-prefix=PREFIX''' 
Dateien unter dem Verzeichnis PREFIX/... speichern

'''-nv oder --non-verbose'''
Es werden weniger meldungen ausgegeben.

'''-m oder --mirror'''
Aktiviert Optionen, die zum Erstellen eines Mirrors (Spiegels) einer Website notwendig sind. 
Folgende Optionen werden aktiviert: -r -N -l inf --no-remove-listing

'''-o Datei oder --output-file=Datei'''
Protokoll-Meldungen werden in die angegebene Datei geschrieben. 
Wenn die Datei bereits existiert, wird sie überschrieben.
'''
-q oder --quit'''
Es werden keine Meldungen ausgegeben.

'''bei mirror''' (-r -N -l inf --no-remove-listing)

'''-r oder --recursive'''
Der Download findet rekursiv statt. Verlinkte Seiten oder Unterverzeichnisse werden ebenfalls 
heruntergeladen. Verweise auf andere Webseiten wird gefolgt. Diese Option ist mit Vorsicht zu verwenden.

-N oder --timestamping
Es werden nur Dateien heruntergeladen, die neuer als die lokalen Dateien sind.

-l Zahl oder --level=Zahl
Legt die maximale Rekursionstiefe fest. Dabei stehen 0 und inf für eine unbegrenzte Tiefe.

--no-remove-listing’
Don't remove the temporary .listing files generated by ftp retrievals. Normally, these files 
contain the raw directory listings received from ftp servers. Not removing them can be useful 
for debugging purposes, or when you want to be able to easily check on the contents of remote 
server directories (e.g. to verify that a mirror you're running is complete). 

Externe Links