Wie versprochen, heute der zweite Teil zum Website-Backup. Meine Lösung hier ist einfach: die Dateien packen und per FTP wegsichern. Sie müssen das Perl-Skript noch etwas anpassen, also Ihren FTP-Server, Benutzernamen, Passwort und vor das allem das Verzeichnis, das auf dem Webserver gesichert werden soll, eintragen. Fragen, Fehlersichtungen und Anregungen bitte wie immer in den Kommentaren hinterlassen. Bitte haben Sie Verständnis dafür, dass ich keine Gewähr dafür übernehme, dass das Skript und das Backup daraus fehlerfrei funktioniert und nicht z.B. Ihre Daten vernichtet. Wenn Sie es einsetzen, dann auf eigenes Risiko! Und überprüfen Sie bitte auch regelmäßig, ob die gepackten Dateien funktionsfähig sind.
Nachdem Sie das Skript angelegt und gespeichert haben (z.B. vi backup.pl), müssen Sie die Rechte noch auf “ausführbar” setzen. (z.B. chmod 755 backup.pl)
Binden Sie schließlich das Skript als Cron-Job ein (siehe Teil 1) und schon haben ein automatisches Backup.
#!/usr/bin/perl
#Modul FTP einbinden
use Net::FTP;
#Variablen festlegen, die das Datum erzeugen
($day, $month, $year) = (localtime)[3,4,5];
#Namen für das Backup-Verzeichnis festlegen (hier z.B.: backup_09-08-14 )
$backupDir = “backup_$year-$month-$day”;
#Consolen-Befehl tar ausführen und die Datei backup.tar.gz erzeugen. Passen Sie noch den Pfad an, den Sie sichern möchten (z.B. /srv/www/htdocs)
open(CONSOLE, “tar cvzf backup.tar.gz /ihr/zu/sicherndes/Verzeichnis/ |”);
while (<CONSOLE>)
{
#warten bis tar fertig ist
}
#Console schließen
close(CONSOLE);
#FTP-Verbindung auf den Server
$ftp = Net::FTP->new(“ihr-ftp-server.de”, Debug => 1)
or die “Kann nicht mit Host verbinden: $@”;
#Login-Daten auf den FTP-Server
$ftp->login(“Benutzername”, “Passwort”)
or die “Login gescheitert “, $ftp->message;
#Wechseln in den Unterordner “backup”. Der Ordner muss bereits existieren. Sie können ihn auch weglassen oder durch einen beliebigen ersetzen
$ftp->cwd(“/backup”)
or die “Kann das Verzeichnis nicht wechseln “, $ftp->message;
# Erzeugung des Unterordners als aktuelles Backup-Verzeichnis
$ftp->mkdir($backupDir);
#Wechsel ins aktuelle Backup-Verzeichnis
$ftp->cwd($backupDir);
# Binären-Modus für den Upload
$ftp->binary();
#Upload der Backupdatei
$ftp->put(“backup.tar.gz”);
#Und Schluss
$ftp->quit();