Die Einrichtung unseres Servers ist ja nun mittlerweile beachtlich fortgeschritten, daher wird es mal Zeit die verschiedenen Jails und die persönlichen Daten zu sichern. Wir wollen ja nicht, dass was verloren geht.
Ich habe mir ein relativ einfaches Skript ausgesucht, da ich keinen Backup-Server betreiben will, der mir meine Clients sichert, sondern ich lediglich ein paar gepackte Dateien auf nen Backup-Server speichern will. Daher verwende ich das Skript "SimpleBackup".

  1. Zunächst laden wir uns die aktuelle Version (aktuell 1.8.1) von der Website herunter und entpacken sie. Da ich auf einen Server sichere, der nur über SFTP erreichbar ist, installiere ich mir noch den Port 'p5-Expect' mit folgendem Befehl:

    # cd /usr/ports/lang/p5-Expect/ && make install clean

  2. Noch ein Hinweis zu den verfügbaren Archiven: Ich würde "rar" empfehlen, da "tar.bz2", mein eigentlicher Favorit, keine leeren Verzeichnisse packen kann. Das ist bei den Jails aber eventuell mal unangenehm, daher für die Jails nicht zu empfehlen.

    Da "rar" leider nicht openSource ist, kannst du nur die Shareware zum Testen nutzen, solltest aber bei dauerhaftem Einsatz eine Lizenz kaufen. Aber um nun "rar" zu installieren, führe folgenden Befehl aus:

    # cd /usr/ports/archivers/rar/ && make install clean

  3. Da ich das Skript in das Verzeichnis '/root/backup/' entpackt habe, lege ich mir ein Unterverzeichnis 'configs' in '/root/backup/' an. Hier werden dann die Konfigurationsdateien für die verschiedenen Backups gespeichert. Ich lege zum Beispiel für jede Jail eine eigene Konfigurationsdatei an, da ich Test-Jails zum Beispiel nicht sichern will bzw. die Jail mit dem Mailserver täglich sichern möchte.

    Mit folgendem Befehl erstellst du eine Default-Konfiguration:

    # perl -w simplebackup.pl --econf configs/default.conf

  4. Wenn du die Datei 'configs/default.conf' mit einem Editor öffnest, wirst du eine sehr gut dokumentierte Datei finden, in der du einige Parameter setzen kannst. Interessant sind hauptsächlich folgende Parameter:
    • backup_mode (z.B. incremental)
    • full_backup_day (z.B. first_day_month)
    • backup_format (z.B. rar)
    • input_backup (z.B. /home oder file://@/root/backup/dirlist.txt)
    • output_backup (z.B. sFTP, WebDAV)
    • run_ -Variablen (z.B. run_before_backup um Jails zu stoppen)
    • encryption_passwd (Verschlüsselungsstring)
    • mail_server (Mailserver über den der Statusbericht versandt wird)
    • mail_from_address (Absenderadresse)
    • mail_to_address (Empfängeradresse für den Statusbericht)
    • backup_full_path_rejections (Liste mit Verzeichnissen/Dateien die ausgeschlossen werden)

  5. Wenn du nun eine Konfigurationsdatei erstellt hast, solltest du diese testen. Das machst du mit folgendem Befehl:

    # perl -w simplebackup.pl --tconf configs/default.conf

    Wenn kein Fehler angezeigt wird, ist die Konfiguration in Ordnung.

  6. Jetzt kannst du dir einen Cronjob anlegen, sodass deine Daten entsprechend gesichert werden. Wenn du "backup_mode = incremental" gesetzt hast, werden nur dann Daten gesichert, wenn sich etwas verändert hat.

HINWEIS: Zum Zeitpunkt dieses Textes ist ein Fehler in der sFTP-Funktionalität in der Datei 'simplebackup.pl' enthalten. Dieser Fehler tritt auf, wenn du einen alternativen Port statt 22 verwendest.

Zeile 5569:
Vorher:

$sftp_expect = Expect->spawn("$sftp_command -oport=$sftp_server_port sftp_username\@$sftp_server") or $error_flag = 3;

Nachher:

$sftp_expect = Expect->spawn("$sftp_command -oPort=$sftp_server_port sftp_username\@$sftp_server") or $error_flag = 3;

Zeile 5576:
Vorher:

$sftp_expect = Expect->spawn("$sftp_command -oport=$sftp_server_port -v $sftp_username\@$sftp_server") or $error_flag = 3;

Nachher:

$sftp_expect = Expect->spawn("$sftp_command -oPort=$sftp_server_port -v $sftp_username\@$sftp_server") or $error_flag = 3;