Hallo zusammen,
nachdem ich nun mit esr-backup eine schöne Lösung gefunden habe Backups auf FTP zu machen, das ganze mit Hilfe des Hacks (vielen Dank) sogar einzelne Archive für beliebige Verz. erstellt, fehlte nur noch etwas gegen meine Faulheit :-)
Da ich alle /srv/www/htdocs/webXXX Verz. einzeln sichern wollte egal ob welche dazukommen oder gelöscht werden hab ich ein kleines Perlscript erstellt, welches das für mich erledigt.
Nachdem ich nun hier schon so viel Hilfe gefunden habe, möchte ich es hier zur Verfügung stellen und hoffe es kann jemand was damit anfangen.
Code: Select all
#!/usr/bin/perl
#
# alte eintraege loeschen
#
opendir (DELE, "/home/backups/todo");
@liste = readdir DELE;
closedir DELE;
foreach $todel (@liste){
if ($todel =~ m/A.{9,10}-.+/i) {
print "dele: ".$todel."n";
unlink "/home/backups/todo/$todel";
}
}
#
# zu sichernde verzeichnisse ermitteln
#
opendir (WEBS, "/srv/www/htdocs");
@liste = readdir WEBS;
closedir WEBS;
#
# fuer jedes verzeichnis eigenen esr-backup.cfg schreiben
#
foreach $web (@liste) {
if ( $web =~ m/Aweb.+/) {
print $web."n";
open (ESRCFGIN, "/home/backups/esr-backup.cfg.tmp");
@inhalt = <ESRCFGIN> ;
close (ESRCFGIN);
open (ESRCFGOUT, ">/home/backups/todo/esr-backup-$web.cfg");
foreach $esrcfg (@inhalt) {
$esrcfg =~ s/###label###/$web/i;
print ESRCFGOUT ("$esrcfg");
}
close (ESRCFGOUT);
#
# fuer jedes verzeichnis eigene file-list.cfg schreiben
#
open (FLISTIN, "/home/backups/file-list.cfg.tmp");
@inhalt = <FLISTIN> ;
close (FLISTIN);
open (FLISTOUT, ">/home/backups/todo/file-list-$web.cfg");
foreach $flistcfg (@inhalt) {
$flistcfg =~ s/###filelist###/++/srv/www/htdocs/$web/htmln/i;
print FLISTOUT ("$flistcfg");
}
close (FLISTOUT);
}
}
#
# esr-backup und file-list fuer sql schreiben
#
$web = "sql";
print $web."n";
open (ESRCFGIN, "/home/backups/esr-backup.cfg.tmp");
@inhalt = <ESRCFGIN> ;
close (ESRCFGIN);
open (ESRCFGOUT, ">/home/backups/todo/esr-backup-$web.cfg");
foreach $esrcfg (@inhalt) {
$esrcfg =~ s/###label###/$web/i;
print ESRCFGOUT ("$esrcfg");
}
close (ESRCFGOUT);
open (FLISTIN, "/home/backups/file-list.cfg.tmp");
@inhalt = <FLISTIN> ;
close (FLISTIN);
open (FLISTOUT, ">/home/backups/todo/file-list-$web.cfg");
foreach $flistcfg (@inhalt) {
$flistcfg =~ s/###filelist###/++/root/MySQL-Backupn/i;
print FLISTOUT ("$flistcfg");
}
close (FLISTOUT);
#
# jedes verzeichnis in run_esr.sh eintragen
#
open (RUNSHIN, "/home/backups/run_esr.sh.tmp");
@inhalt = <RUNSHIN> ;
close (RUNSHIN);
open (RUNSHOUT, ">/home/backups/todo/run_esr.sh");
print RUNSHOUT @inhalt;
foreach $web (@liste) {
if ( $web =~ m/Aweb.+/) {
print RUNSHOUT ("./esr-backup.pl -c /home/backups/todo/esr-backup-$web.cfgn");
}
}
close (RUNSHOUT);
Ã?nderungen in esr-backup.cfg als esr-backup.cfg.tmp
Meine file-list.cfg.tmp
Code: Select all
...
########################################################################
#BE SURE TO REMOVE EXAMPLES BELOW BEFORE RUNNING FOR THE FIRST TIME
#
---filelist---
Meine run_esr.sh.tmp
Code: Select all
...
# Set the correct path to the esr-backup.pl script
#########################################################################
#Set the path to something sensible for your system
PATH=/usr/local/bin:/usr/bin
export PATH
#change the path below to match the full path to the directory esr-backup.pl resides in
cd /full/path/to/the/esr/directory
Das MySQL Verz. wird noch mit eingefügt, da ich dort mit Hilfe des automysqlbackup.sh Scripts, welches ebenfalls hier zu finden ist, die MySQL-DB's sichern lasse.
Mit ein paar Anpassungen an eigenen Bedürfnisse sollte man es schon verwenden können.
Für Anregungen, Kritik, Ã?nderungen, Hinweise u.s.w. wäre ich sehr dankbar, da ich kein Perl Spezialist bin und an dem Script sicher einiges zu verbessern wäre.
Bei mir funktioniert das ganze nun seit ca. zwei Wochen wunderbar.
Hoffe es ist brauchbar.
Grüße
Yoho