Page 1 of 1

ESR Backup Anleitung

Posted: 2004-10-18 12:39
by alexey
Hier habe ich ne kleine Anleitung zu ESR Backup zusammengestellt:

Installieren von Perl Modulen:
Starten Sie zuerst den CPAN Shell mit:

Code: Select all

# perl -MCPAN -e shell
CPAN Updaten:

Code: Select all

cpan>install Bundle::CPAN
alle angaben mit default werten bestätigen,
Nach der Fertigstellung:

Code: Select all

cpan>reload cpan
Digest::MD5 installieren

Code: Select all

cpan>install Digest::MD5
Restlichen Module installieren:

Code: Select all

cpan> install Net::FTP
cpan> install Crypt::Blowfish
cpan> install Crypt::CBC
mit exit beenden sie cpan

Bearbeiten der Config Datei:

im ESR Ordner:

Code: Select all

# mcedit config/esrbackup.cfg
# Name für Backup
ARCHIVE_LABEL = backup

# Temp Ordner
TEMP_DIR = /var/tmp

# Pfad zum tar Programm
TAR_PATH = /bin/tar

usw...

Bearbeiten der filelist Datei:

bitte zuerst die Beispieldaten entfernen

dann
++/srv
um den /srv ordner zu sichern

Zugrifferechtigungen setzen

Code: Select all

#chmod 755 esr-backup.pl
#chmod 755 decrypt-archive.pl
#chmod 755 run_esr.sh
Startscript anpassen:

Code: Select all

mcedit run_esr.sh
und den scriptpfad ändern

danach kann man den script starten oder in den daily cron eintragen

Re: ESR Backup Anleitung

Posted: 2004-10-18 16:25
by cheops
Ich häng mich da einfach mal dran :wink:

Da mein Backup doch ein wenig gross wurde, habe ich das Backup aufgeteilt. Das Problem bei der Sache ist, das ESR leider die file-list.cfg fest reingecodet hat.

Folgende Ã?nderungen habe ich vorgenommen:

esr-backup.pl Zeile 265:

Code: Select all

open (FLIST,"$pwd/config/file-list.cfg") || die "ERROR :: can not open $pwd/config/file-list.cfg ::$!n";
ändern in:

Code: Select all

open (FLIST,"$pwd/config/file-list-$alabel.cfg") || die "ERROR :: can not open $pwd/config/file-list-$alabel.cfg ::$!n";
Als Beispiel nehme ich zwei Backup-Configs
esr-backup-ETC.cfg
esr-backup-WWW.cfg
In diesen Dateien spezifiziert man nun ein eindeutiges Archivlabel (alle anderen Einstellungen sollten natürlich auch passen):
esr-backup-ETC.cfg:

Code: Select all

ARCHIVE_LABEL = ETC
esr-backup-WWW.cfg:

Code: Select all

ARCHIVE_LABEL = WWW
2 individuelle Filekonfigs für die Backupjobs anlegen
file-list-ETC.cfg
file-list-WWW.cfg

Zum Schluss noch das run_esr.sh Script anpassen

Code: Select all

 [snip header].....
# Backups starten
./esr-backup.pl -c ./config/esr-backup-ETC.cfg
./esr-backup.pl -c ./config/esr-backup-WWW.cfg
Jetzt kann man das Backup wie gewohnt per

Code: Select all

./run_esr.sh
starten. Für jede Konfiguration wird dann im Backupverzeichnis bzw. auf dem FTP-Server ein eigenes Archiv angelegt.

Was mich noch ein wenig an der Installation gestört hat waren die Datei- und Verzeichnisberechtigungen.
Wird das Backup verschlüsselt, sollte der Key unbedingt nur von dem User lesbar sein, mit dem das Backup gestartet wird. Ebenso sollte das ESR tmp Verzeichnis mit den Rechten 700 versehen werden. Ansonsten kann sich jeder User an den Archiven bedienen, die dort temporär abgelegt werden.
Ich habe für das komplette Verzeichnis inkl. aller Dateien die Rechte auf 700 gesetzt.

Re: ESR Backup Anleitung

Posted: 2004-12-25 02:17
by yoho
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

Code: Select all

ARCHIVE_LABEL = ---label---
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

ESR - BACKUP

Posted: 2005-07-03 17:05
by tanami
Hallo weiss von Euch jemand warum ich die Files troitzdem im ESR Backup habe ?
  • -rw-r--r-- 1 root root 1005453312 Jul 3 16:53 Sunday-7-3-2005--Full-Server12.com.tar.gz
    -rw-r--r-- 1 root root 2187511 Jul 3 16:50 curbak.tmp
    -rw-r--r-- 1 root root 3246101 Jul 3 16:50 flistServer12.com.tmp
    -rw-r--r-- 1 root root 1005453312 Jul 3 16:53 Sunday-7-3-2005--Full-Server12.com.tar.gz
    -rw-r--r-- 1 root root 2187511 Jul 3 16:50 curbak.tmp
    -rw-r--r-- 1 root root 3246101 Jul 3 16:50 flistServer12.com.tmp
    r543434:/home/backup_new # more curbak.tmp |grep Sunday-7*
    r543434:/home/backup_new # more flistServer12.com.tmp |grep Sunday-7*
    r543434:/home/backup_new # more flistServer12.com.tmp |grep Sunday-7*
    r543434:/home/backup_new # more curbak.tmp |grep Sunday-7*
    begin 644 /home/backup_new/Sunday-7-3-2005--Full-Server12.com.tar.gz
    r543434:/home/backup_new # more flistServer12.com.tmp |grep Sunday-7*
    begin 644 /home/backup_new/Sunday-7-3-2005--Full-Server12.com.tar.gz
    r543434:/home/backup_new #:/home/backup_new # more curbak.tmp |grep Sunday-7*
    r543434:/home/backup_new # more flistServer12.com.tmp |grep Sunday-7*
    r543434:/home/backup_new # more flistServer12.com.tmp |grep Sunday-7*
    r543434:/home/backup_new # more curbak.tmp |grep Sunday-7*
    begin 644 /home/backup_new/Sunday-7-3-2005--Full-Server12.com.tar.gz
    r543434:/home/backup_new # more flistServer12.com.tmp |grep Sunday-7*
    begin 644 /home/backup_new/Sunday-7-3-2005--Full-Server12.com.tar.gz
    r543434:/home/backup_new
    #
Diese Files habe ich in die file-list.cfg eingetragen:

++/home
--/home/backup_new/
--/home/backup/
++/root
++/etc
++/srv
++/var
--/var/lib/mysql/Server5-3ss032
++/bin


==> PS. geht auch nicht wenn ich --/home/backup_new setze
Wäre Super es könnte mir da jemand helfen oder vielleicht habt ihr ja auch das Problem das ESR das TMP Verzeichnis trotzdem mit ins Backup nimmt, obwohl es -- also Skipppen sollte ....

Gruss Joerg

Re: ESR Backup Anleitung

Posted: 2005-07-05 15:42
by heart
Hab alles so gemacht wie im ersten Post und anschl. führe ich zum Testen manuell ./run_esr.sh aus.

Ich bekomme folgenden Fehler:

Code: Select all

# ./run_esr.sh
/bin/tar: gzip: Kann exec nicht ausführen.: Datei oder Verzeichnis nicht gefunden
/bin/tar: Nicht behebbarer Fehler: Programmabbruch.
die file-list.cfg sieht so aus:

Code: Select all

++/etc
++/usr/share/squirrelmail
++/var/lib/squirrelmail/data
++/var/lib/mysql
++/var/kunden
++/var/www/
TAR_PATH habe ich /bin/tar (was mir "which tar" auch bestätigt)

Was stimmt bei mir nicht :? :?:


edit: hab in der cfg noch ein v (für verbose) bei den tar-optionen hinzugefügt, der Fehler sieht dann so aus:

Code: Select all

/bin/tar: /tmp/Tuesday-7-5-2005-0638-Incremental-backup.tar.gz: Kann stat nicht ausführen.: Datei oder Verzeichnis nicht gefunden
/bin/tar: Fehler beim Beenden, verursacht durch vorhergehende Fehler.
BACKUP DID NOT COMPLETE :: ERROR :: moving local file '/tmp/Tuesday-7-5-2005-0638-Incremental-backup.tar.gz' ::Datei oder Verzeichnis nicht gefunden

Re: ESR Backup Anleitung

Posted: 2005-07-05 19:21
by heart
Problem scheint gelöst zu sein, es funktioniert jetzt bei mir....

Hab in der cfg-datei den tmp-Pfad von /tmp zu "nichts" geändert (also leer gelassen, so wird das ESR-tmp-Verz. genommen) und nun geht's!!?!

(...und ja, /tmp hatte 777)

misteriös 8O :roll:

Re: ESR Backup Anleitung

Posted: 2005-07-05 19:24
by Joe User
Heart wrote:(...und ja, /tmp hatte 777)
Glaube ich nicht...

Re: ESR Backup Anleitung

Posted: 2005-07-05 19:43
by heart

Code: Select all

drwxrwxrwt     3 root root  16384 2005-07-05 19:37 tmp
Andere Frage:
Wie bringe ich ESR dazu bei der Sicherung auch einen dump der kompletten DB mitzusichern?

*.sql file täglich kurz vor Ausführung des ESR-cronjobs ebenfalls per cronjob anlegen lassen (durch mysqldump....) und diese eine Datei dann in die file-list.cfg mit aufnehmen?

Oder gibt es andere Möglichkeiten?

Danke

Re: ESR Backup Anleitung

Posted: 2005-07-05 20:22
by Joe User
Heart wrote:

Code: Select all

drwxrwxrwt     3 root root  16384 2005-07-05 19:37 tmp
Das ist 1777, nicht 0777 :roll:

Re: ESR - BACKUP

Posted: 2005-07-05 22:40
by tanami
Keiner eine Idee ?????
tanami wrote:Hallo weiss von Euch jemand warum ich die Files troitzdem im ESR Backup habe ?
  • -rw-r--r-- 1 root root 1005453312 Jul 3 16:53 Sunday-7-3-2005--Full-Server12.com.tar.gz
    -rw-r--r-- 1 root root 2187511 Jul 3 16:50 curbak.tmp
    -rw-r--r-- 1 root root 3246101 Jul 3 16:50 flistServer12.com.tmp
    -rw-r--r-- 1 root root 1005453312 Jul 3 16:53 Sunday-7-3-2005--Full-Server12.com.tar.gz
    -rw-r--r-- 1 root root 2187511 Jul 3 16:50 curbak.tmp
    -rw-r--r-- 1 root root 3246101 Jul 3 16:50 flistServer12.com.tmp
    r543434:/home/backup_new # more curbak.tmp |grep Sunday-7*
    r543434:/home/backup_new # more flistServer12.com.tmp |grep Sunday-7*
    r543434:/home/backup_new # more flistServer12.com.tmp |grep Sunday-7*
    r543434:/home/backup_new # more curbak.tmp |grep Sunday-7*
    begin 644 /home/backup_new/Sunday-7-3-2005--Full-Server12.com.tar.gz
    r543434:/home/backup_new # more flistServer12.com.tmp |grep Sunday-7*
    begin 644 /home/backup_new/Sunday-7-3-2005--Full-Server12.com.tar.gz
    r543434:/home/backup_new #:/home/backup_new # more curbak.tmp |grep Sunday-7*
    r543434:/home/backup_new # more flistServer12.com.tmp |grep Sunday-7*
    r543434:/home/backup_new # more flistServer12.com.tmp |grep Sunday-7*
    r543434:/home/backup_new # more curbak.tmp |grep Sunday-7*
    begin 644 /home/backup_new/Sunday-7-3-2005--Full-Server12.com.tar.gz
    r543434:/home/backup_new # more flistServer12.com.tmp |grep Sunday-7*
    begin 644 /home/backup_new/Sunday-7-3-2005--Full-Server12.com.tar.gz
    r543434:/home/backup_new
    #
Diese Files habe ich in die file-list.cfg eingetragen:

++/home
--/home/backup_new/
--/home/backup/
++/root
++/etc
++/srv
++/var
--/var/lib/mysql/Server5-3ss032
++/bin


==> PS. geht auch nicht wenn ich --/home/backup_new setze
Wäre Super es könnte mir da jemand helfen oder vielleicht habt ihr ja auch das Problem das ESR das TMP Verzeichnis trotzdem mit ins Backup nimmt, obwohl es -- also Skipppen sollte ....

Gruss Joerg

und ISO-Format für die Backupdateien

Posted: 2005-09-17 16:35
by wookkie
Gibt es eigentlich keine Möglichkeit ISO-Datumsformat bei den Backupdateien zu erreichen?

Re: ESR Backup Anleitung

Posted: 2005-09-24 11:30
by sartre
Hallo zusammen,

vielleicht hat einer von euch einen Tip. Ich hab ESR testweise auf zwei verschiedene Server installiert und laufen lassen. Beim einem läuft es wunderbar durch, bei dem anderen gibt es die Meldung:
BACKUP DID NOT COMPLETE :: Reading from filehandle failed at ./esr-backup.pl line 357.
Zeile 357 ist bei mir

Code: Select all

my $newhash = Digest::MD5->new->addfile(*FILE)->hexdigest;
aus dem Block:

Code: Select all

sub check_md5 {
	my $fn = shift;
	open(FILE, $fn) || return("ERROR could not backup file $fn :: $!n");
	binmode(FILE);
	my $newhash = Digest::MD5->new->addfile(*FILE)->hexdigest;
	return($newhash);
}
Hat einer von euch Ahnung welches Modul ich wohl nach installieren muss?

Gruß Thomas

Re: ESR Backup Anleitung

Posted: 2005-09-24 11:38
by captaincrunch
Auch wenn ich nur sehr wenig von Perl verstehe: ich denke nicht, dass es sich hier um ein fehlendes Modul handelt. Die Fehlermeldung bezieht sich ja eher auf das Filehandle (*FILE), daher würde ich in diese Richtung schauen.

Hth

Re: ESR Backup Anleitung

Posted: 2005-09-24 12:53
by sartre
Thnx für die schnelle Antwort.
Was mich irritiert ist halt die Tatsache, dass dies ja bei den zwei Installationen um zwei identische handelt und wie gesagt auf dem einen Server auch hervorragend läuft.

Gruß Thomas

CaptainCrunch wrote:Auch wenn ich nur sehr wenig von Perl verstehe: ich denke nicht, dass es sich hier um ein fehlendes Modul handelt. Die Fehlermeldung bezieht sich ja eher auf das Filehandle (*FILE), daher würde ich in diese Richtung schauen.

Hth