Plesk Backupscript Perl und Bash

Traxmaxx

Registered User
Huhu!

Und zwar habe ich zwei Fragen :)

Ich habe mir mal ein Script erstellt, welches automatisch ein gesamtes Plesk Backup erstellt, auf den Backup-Ftp hochlädt und dann eine Mail schickt, wenn alles glatt lief.
Es besteht im Moment aus zwei Scripten:

backup.sh
Code:
#! /bin/bash
cd /srv/backup

#Backup erstellen
/usr/local/psa/bin/pleskbackup all psa_dump

#nun alles hochladen
./ftp.pl

#und zum Schluss eine Mail schicken
mail -s "Backup wurde erfolgreich erstellt!" admin@admins-at-works.de

und backup.pl
Code:
#!/usr/bin/perl

use Net::FTP;

#zum Server verbinden
my $ftp = Net::FTP->new('backupxxx.onlinehome-server.info') or die ("Login war nicht erfolgreich");
$ftp->login('NAME','PW') or die("Der FTP-Login war nicht erfolgreich");

#Ordner erstellen
if( $ftp->get('/') ){
$ftp->cwd('/');
} else {
$ftp->mkdir('/',1);
$ftp->cwd('/');
}

my ($day,$mon,$year,$min,$hour) = (localtime(time))[3,4,5,1,2];
my $date = sprintf("%02d.%02d.%04d_%02d-%02d",$day,$mon+1,$year+1900,$hour,$min);

#Hochladen
$ftp->binary();
$ftp->put("/srv/backup/psa_dump","psa_dump.plesk_$date") or die("Der Transfer (1) ist fehlgeschlagen !");

#Verbindung beenden
$ftp->quit();

Gibt es eine Möglichkeit, aus diesen beiden Scripten ein Script zu machen?
Und wie bekomme ich es hin, ein vernünftiges Log zu erstellen und dies per Mail zu schicken? Im Log sollte der Name der Backup Datei stehen, die Größe und eventuelle Fehler.

Danke schoneinmal im Vorraus :)

Tschö mit ö

Traxmaxx
 
Hallo Trax

Du kannst natürlich aus den beiden Skripts eines machen. In meinen Augen macht es auch gar keinen Sinn, die Funktionalität für FTP und das Erstellen der Backup Datei auf 2 verschiedene Skriptsprachen zu verteilen. Welche der beiden Skriptsprachen du letztendlich nutzt, hängt natürlich von deinen Vorlieben ab.

BASH: Hier wäre es relativ einfach, die FTP Funktionalitäten abzubilden, indem du einfach den ftp Befehl deines Systems nutzt. Eigentlich genauso, wie du den Befehl 'pleskbackup' verwendest. Statt dem Aufruf des Perl Skriptes, steht da eben /bin/ftp mit den notwendigen Parametern. Das hochladen einer Datei per FTP lässt sich auch automatisieren, wenn man auf den netrc Mechanismus zurückgreift. Hier lassen sich Macros (Abfolge von FTP Befehlen) definieren, die automatisch ausgeführt werden. Die Man Page ist recht kurz/übersichtlich. Einfach
Code:
man netrc
aufrufen.

PERL: Das wäre meine persönliche Wahl. Aber das Perl Skript wäre natürlich eine ganze Ecke aufwendiger, wenn man das solide umsetzen will.
-
LOG
Im einfachsten Fall würde ich nach jeder Aktion die Logmeldungen rausschreiben. Natürlich mit der Information, ob Aktion erfolgreich oder nicht (Returncodes bei der Shell prüfen).

Ein einfacher Aufbau eines Logeintrages wäre (meiner Meinung):
Code:
<DATE> <TIME><TAB><NAME DER AKTION><TAB><LOGTEXT>
<TAB> - Tabulator, zwecks besserer Formatierung.
-
Noch ein Hinweis:
Das Versenden der Mail am Ende deines Shell Skriptes, teilt dir aktuell zwar mit, das das Skript (bis zum Ende) abgearbeitet wurde, aber auf keinen Fall, ob das Backup erfolgreich war. Ich denke hier musst du auf alle Fälle noch diverse Abfragen einbauen, bevor du eine Mail mit "Erfolgreich" oder "Nicht erfolgreich" verschickst.

Mahlzeit! :)
 
Back
Top