ispCP - Board - Support
[REOPEN]Backup auf externem Server - Printable Version

+- ispCP - Board - Support (http://www.isp-control.net/forum)
+-- Forum: ispCP Omega International Area (/forum-22.html)
+--- Forum: German Corner (/forum-26.html)
+---- Forum: Archiv (/forum-54.html)
+---- Thread: [REOPEN]Backup auf externem Server (/thread-9564.html)



[REOPEN]Backup auf externem Server - Darkside2009 - 02-10-2010 08:26 PM

Ist es möglich die nächtlichen Backups die durch ISPCP erstellt werden diese auf einen externen Server erstellen zu lassen ?

IP, Benutzername und PW sind dafür vorhanden


RE: Backup auf externem Server - TheCry - 02-10-2010 09:18 PM

(02-10-2010 08:26 PM)Darkside2009 Wrote:  Ist es möglich die nächtlichen Backups die durch ISPCP erstellt werden diese auf einen externen Server erstellen zu lassen ?

IP, Benutzername und PW sind dafür vorhanden

Quick and dirty..
ich musste so was mal auf die schnelle erledigen...
Bin aber bis jetzt nicht dazu gekommen es anzupassen.
Hiermit werden die Dumps und die Webbackups noch einmal gepackt und per scp auf einen anderen Server verschoben...
Ich nutze dabei auch den Tagesnamen, damit ich immer 1 Woche Backups vorhanden habe.
Das ganze funktioniert aber nicht mit Username, Passwort sonder per AuthenticationKey!

Code:
#!/bin/bash

######################### Cronjob ###############################
#                                                               #
# 40 2 * * * /root/scripts/backup.sh                            #
#                                                               #
#################################################################


# Datenbank angaben
# Hostname oder IP des MySql-Servers
DBHOST="localhost";
# Benutzername und Passwort um auf deine Datenbank zu gelangen
DBUSER="root";
DBPASS="passwort";

# ZIELORDNER Backupordner für alle Verzeichnise Z.B. /files
# Somit werden alle Backups des Jeweiligen Web's aus diesem Ordner gesammelt
zo="backups"

# Zusatzangaben zum Backupfile. Hierfür kann Z.B. der Wochentag benutzt werden.
# In diesem Fall ist es Der wochentag mit date ermittelt. Somit bleiben Backups für
# eine Woche rückwirkend erhalten.
filebase=`date +%a`

#DNS-NAME oder IP-Adresse des Backupservers
BS_ADDRESS="192.168.10.10"

#Username und Passwort fürr den Backupserver
BS_USERNAME="username"

#Directory auf den Backupserver
BS_REMOTE_DIR="/backup/"

#Directory lokalen Server
BS_LOCAL_DIR="/tmp/backups/"

###############################################################################
#                                                                             #
# Ab Hier bitte NICHTS mehr ändern Ohne genau kenntnisse was Du veränderst! #
#                                                                             #
###############################################################################
ZEITSTART=`date +"%H:%M:%S"`
echo -e "-------------------- START BACKUP $ZEITSTART --------------------\n\n"
if [ -d $BS_LOCAL_DIR ]; then
        echo "Directory exists"
else
        `mkdir -p $BS_LOCAL_DIR`
fi

#dateiname="ispcp_db_backup.sql.bz2"
#echo "mysqldump $dateiname wird erstellt......";
#`mysqldump --all -e -l --add-drop-table --host=$DBHOST --user=$DBUSER --password=$DBPASS ispcp | /usr/bin/nice /usr/bin/bzip2 - > $BS_LOCAL_DIR$dateiname`

for dir in /var/www/virtual/*
        do

if [ -d "$dir" ] ;
        then
        cd "$dir"
        cd "$zo"
        ZEIT=`date +"%H:%M:%S"`
        echo -e "-------------------- NEXT LINE BACKUP $ZEIT --------------------"
        echo `pwd`
                verzeichnis=""
                dateiname=""
                dateiname=`pwd | awk -F '\/' '{ print $5 }'`
                verzeichnis=`pwd`
        dateiname="$dateiname""_complete_backup_""$filebase"".tar.gz"
                echo "Erstelle Backup $dateiname aus dem Verzeichnis $verzeichnis......"
                `/usr/bin/nice /bin/tar cfz $BS_LOCAL_DIR$dateiname $verzeichnis/*`;
                echo "Backup wird auf Backup-Storage kopiert......"
                `/usr/bin/scp $BS_LOCAL_DIR$dateiname $BS_USERNAME@$BS_ADDRESS:$BS_REMOTE_DIR`
                echo "Backup erfolgreich auf Backup-Storage kopiert......"
        fi
done
ZEITEND=`date +"%H:%M:%S"`
echo -e "-------------------- END BACKUP $ZEITEND --------------------\n\n"
exit



RE: Backup auf externem Server - ZooL - 02-11-2010 05:23 PM

CLOSE


RE: [REOPEN]Backup auf externem Server - Darkside2009 - 02-13-2010 09:29 PM

Ich habe das ganze nun mal ein wenig bearbeitet so das ich die ISPCP DB auslese und davon ein backup erstelle.
Desweiteren werden die Ordner /var/www/ispcp/backups /var/www/virtual/ <----- dort alle backupordner gesichert

Code:
#!/bin/bash

######################### Cronjob ###############################
#                                                               #
# 40 2 * * * /root/scripts/backup.sh                            #
#                                                               #
#################################################################


# Datenbank angaben
# Hostname oder IP des MySql-Servers
DBHOST="localhost"; # ist meistens localhost oder trag eure IP ein
# Benutzername und Passwort um auf deine Datenbank zu gelangen
DBUSER="ISPCPUSER";  # dort den Benutzer für eure ISPCP-DB eintragen meistens root
DBPASS="euer Passwort"; # hier das root PW oder das ISPCP-Benutzer PW eintragen

# ZIELORDNER Backupordner für alle Verzeichnise Z.B. /files
# Somit werden alle Backups des Jeweiligen Web's aus diesem Ordner gesammelt
zo="backups"

# Zusatzangaben zum Backupfile. Hierfür kann Z.B. der Wochentag benutzt werden.
# In diesem Fall ist es Der wochentag mit date ermittelt. Somit bleiben Backups füine Woche rükend erhalten.
filebase=`date +%a_%Y%m%d-%H%M`

#DNS-NAME oder IP-Adresse des Backupservers
BS_ADDRESS="IP-Backup-Server"  # hier eure IP für den Backup-Server eintragen

#Username und Passwort fün Backupserver
BS_USERNAME="Benutzername:Passwort"   # hier euer Backup-Server Benutzername und Passwort eintragen


#Directory auf den Backupserver
BS_REMOTE_DIR="/backup/"

#Directory lokalen Server
BS_LOCAL_DIR="/tmp/backups/"

###############################################################################
#                                                                             #
# Ab Hier bitte NICHTS mehr ändern Ohne genau kenntnisse was Du veränderst! #
#                                                                             #
###############################################################################
ZEITSTART=`date +"%H:%M:%S"`
echo -e "-------------------- START BACKUP $ZEITSTART --------------------\n\n"
if [ -d $BS_LOCAL_DIR ]; then
        echo "Directory exists"
else
        `mkdir -p $BS_LOCAL_DIR`
fi

dateiname="ispcp_db_backup_""$filebase"".sql.bz2"
db_backup_file="ispcp_db_backup_""$filebase"".sql.bz2"
echo "mysqldump $db_backup_file wird erstellt......";
`mysqldump --all -e -l --add-drop-table --host=$DBHOST --user=$DBUSER --password=$DBPASS ispcp > $BS_LOCAL_DIR$db_backup_file | /usr/bin/nice /bin/bzip2 $BS_LOCAL_DIR$dateiname`
echo "Datei $dateiname wird auf den Server übertragen........";
curl -T $BS_LOCAL_DIR$dateiname ftp://$BS_USERNAME@$BS_ADDRESS
echo "Datei wurde erfolgreich übertragen......";

for dir in /var/www/ispcp/
        do

if [ -d "$dir" ] ;
        then
        cd "$dir"
        cd "$zo"
        ZEIT=`date +"%H:%M:%S"`
        echo -e "-------------------- NEXT LINE BACKUP $ZEIT --------------------"
        echo `pwd`
                verzeichnis=""
                dateiname=""
                dateiname=`pwd | awk -F '\/' '{ print $5 }'`
                verzeichnis=`pwd`
        dateiname="$dateiname""_complete_backup_""$filebase"".tar.gz"
                echo "Erstelle Backup $dateiname aus dem Verzeichnis $verzeichnis......"
                `/usr/bin/nice /bin/tar cfz $BS_LOCAL_DIR$dateiname $verzeichnis/*`;
echo "Datei $dateiname wird auf den Server übertragen........";
curl -T $BS_LOCAL_DIR$dateiname ftp://$BS_USERNAME@$BS_ADDRESS
echo "Datei wurde erfolgreich übertragen......";

fi

done

for dir in /var/www/virtual/*
        do

if [ -d "$dir" ] ;
        then
        cd "$dir"
        cd "$zo"
        ZEIT=`date +"%H:%M:%S"`
        echo -e "-------------------- NEXT LINE BACKUP $ZEIT --------------------"
        echo `pwd`
                verzeichnis=""
                dateiname=""
                dateiname=`pwd | awk -F '\/' '{ print $5 }'`
                verzeichnis=`pwd`
        dateiname="$dateiname""_complete_backup_""$filebase"".tar.gz"
                echo "Erstelle Backup $dateiname aus dem Verzeichnis $verzeichnis......"
                `/usr/bin/nice /bin/tar cfz $BS_LOCAL_DIR$dateiname $verzeichnis/*`;
echo "Datei $dateiname wird auf den Server übertragen........";
curl -T $BS_LOCAL_DIR$dateiname ftp://$BS_USERNAME@$BS_ADDRESS
echo "Datei wurde erfolgreich übertragen......";


ZEITEND=`date +"%H:%M:%S"`
echo -e "-------------------- END BACKUP $ZEITEND --------------------\n\n";
echo "Alte Backups löschen.......";
/usr/sbin/charon.ftp --host IP-Backupserver \
--user Backupserver-Benutzername \
--password Backupserver-Benutzerpasswort \
--all \
--maxage 1 \
--verbose \
echo "Alte Backups wurden erfolgreich gelöscht.......";

fi

done
exit

falls jemand dazu noch verbesserungen hat, kann er diese gerne vornehmen und hier posten


RE: [REOPEN]Backup auf externem Server - maggot - 03-31-2010 12:16 AM

Nur zum verständnis:

in "zo" werden alle Daten abgelegt um von dort aus transferiert zu werden ?

das hilfs-script "charon.ftp" gibt es unter Ubuntu so nicht und ich habe das auch nicht finden können...

Ideen ?


RE: [REOPEN]Backup auf externem Server - Darkside2009 - 03-31-2010 12:23 AM

(03-31-2010 12:16 AM)maggot Wrote:  Nur zum verständnis:

in "zo" werden alle Daten abgelegt um von dort aus transferiert zu werden ?

das hilfs-script "charon.ftp" gibt es unter Ubuntu so nicht und ich habe das auch nicht finden können...

Ideen ?

charon.ftp war auch nur dafür gedacht um alte dateien auf dem backupserver zu löschen


RE: [REOPEN]Backup auf externem Server - maggot - 03-31-2010 12:32 AM

hmm und nun ?

bei mir werden die Backups zwar im "BS_LOCAL_DIR="/tmp/backups/"" abgelegt im Ordner
"zo" ist nichts zu finden und auf dem Backupserver auch nicht.

Sollte nicht sowohl der Temp Ordner als auch der BS_LOC... leer sein d.h. die werden nur als Temporäre Ablage genutzt oder wie soll ich das verstehen ?
Und warum sagt das Script sowas:

Alte Backups löschen.......
-------------------- NEXT LINE BACKUP 16:29:09 --------------------
/root/backups
awk: warning: escape sequence `\/' treated as plain `/'
Erstelle Backup _complete_backup_Tue_20100330-1629.tar.gz aus dem Verzeichnis /root/backups......
/bin/tar: Removing leading `/' from member names
/bin/tar: /root/backups/*: Cannot stat: No such file or directory
/bin/tar: Error exit delayed from previous errors
Datei _complete_backup_Tue_20100330-1629.tar.gz wird auf den Server übertragen........
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 45 0 0 0 45 0 1616 --:--:-- --:--:-- --:--:-- 0
Datei wurde erfolgreich übertragen......

/root/backups/ existiert mit den Rechten "755"
Übertragen wurde nix !!!...kratz am Kopf...

Edit: den awk Error habe ich mit: update-alternatives --config awk wegbekommen aber der Rest will nicht.


RE: [REOPEN]Backup auf externem Server - Darkside2009 - 03-31-2010 10:57 AM

(03-31-2010 12:32 AM)maggot Wrote:  hmm und nun ?

bei mir werden die Backups zwar im "BS_LOCAL_DIR="/tmp/backups/"" abgelegt im Ordner
"zo" ist nichts zu finden und auf dem Backupserver auch nicht.

Sollte nicht sowohl der Temp Ordner als auch der BS_LOC... leer sein d.h. die werden nur als Temporäre Ablage genutzt oder wie soll ich das verstehen ?
Und warum sagt das Script sowas:

Alte Backups löschen.......
-------------------- NEXT LINE BACKUP 16:29:09 --------------------
/root/backups
awk: warning: escape sequence `\/' treated as plain `/'
Erstelle Backup _complete_backup_Tue_20100330-1629.tar.gz aus dem Verzeichnis /root/backups......
/bin/tar: Removing leading `/' from member names
/bin/tar: /root/backups/*: Cannot stat: No such file or directory
/bin/tar: Error exit delayed from previous errors
Datei _complete_backup_Tue_20100330-1629.tar.gz wird auf den Server übertragen........
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 45 0 0 0 45 0 1616 --:--:-- --:--:-- --:--:-- 0
Datei wurde erfolgreich übertragen......

/root/backups/ existiert mit den Rechten "755"
Übertragen wurde nix !!!...kratz am Kopf...

Edit: den awk Error habe ich mit: update-alternatives --config awk wegbekommen aber der Rest will nicht.

hier nun mal mein backup file wie es bei mir läuft : benenne die datei " backup_extern "
Code:
#!/bin/bash


# Datenbank angaben
# Hostname oder IP des MySql-Servers
DBHOST="localhost";
# Benutzername und Passwort um auf deine Datenbank zu gelangen
DBUSER=""; <---- Datenbank User eintragen meistens root
DBPASS=""; <---- Datenbank Passowrt eintragen

# ZIELORDNER Backupordner für alle Verzeichnise Z.B. /files
# Somit werden alle Backups des Jeweiligen Web's aus diesem Ordner gesammelt
zo="backups"
zo1="etc"
# Zusatzangaben zum Backupfile. Hierfür kann Z.B. der Wochentag benutzt werden.
# In diesem Fall ist es Der wochentag mit date ermittelt. Somit bleiben Backups für eine Woche rückwirkend erhalten.
filebase=`date +%a`

#DNS-NAME oder IP-Adresse des Backupservers
BS_ADDRESS="" <---- IP des Backupservers

#Username und Passwort für den Backupserver
BS_USERNAME="" <------ Username:Passwort


#Directory auf den Backupserver
BS_REMOTE_DIR="/backup/"

#Directory lokalen Server
BS_LOCAL_DIR="/tmp/backups/"

###############################################################################
#                                                                             #
# Ab Hier bitte NICHTS mehr ändern Ohne genau kenntnisse was Du veränderst! #
#                                                                             #
###############################################################################
ZEITSTART=`date +"%H:%M:%S"`
echo -e "-------------------- START BACKUP $ZEITSTART --------------------\n\n"
if [ -d $BS_LOCAL_DIR ]; then
        echo "Directory exists"
else
        `mkdir -p $BS_LOCAL_DIR`
fi

dateiname="ispcp_db_backup_""$filebase"".sql.bz2"
db_backup_file="ispcp_db_backup_""$filebase"".sql.bz2"
echo "mysqldump $db_backup_file wird erstellt......";
`mysqldump --all -e -l --add-drop-table --host=$DBHOST --user=$DBUSER --password=$DBPASS ispcp > $BS_LOCAL_DIR$db_backup_file | /usr/bin/nice /bin/bzip2 $BS_LOCAL_DIR$dateiname`
echo "Datei $dateiname wird auf den Server übertragen........";
curl -T $BS_LOCAL_DIR$dateiname ftp://$BS_USERNAME@$BS_ADDRESS
echo "Datei wurde erfolgreich übertragen......";

for dir in /var/www/ispcp/
        do

if [ -d "$dir" ] ;
        then
        cd "$dir"
        cd "$zo"
        ZEIT=`date +"%H:%M:%S"`
        echo -e "-------------------- NEXT LINE BACKUP $ZEIT --------------------"
        echo `pwd`
                verzeichnis=""
                dateiname=""
                dateiname=`pwd | awk -F '\/' '{ print $5 }'`
                verzeichnis=`pwd`
        dateiname="$dateiname""_complete_backup_""$filebase"".tar.gz"
                echo "Erstelle Backup $dateiname aus dem Verzeichnis $verzeichnis......"
                `/usr/bin/nice /bin/tar cfz $BS_LOCAL_DIR$dateiname $verzeichnis/*`;
echo "Datei $dateiname wird auf den Server übertragen........";
curl -T $BS_LOCAL_DIR$dateiname ftp://$BS_USERNAME@$BS_ADDRESS
echo "Datei wurde erfolgreich übertragen......";

fi

done

for dir in /
        do

if [ -d "$dir" ] ;
        then
        cd "$dir"
        cd "$zo1"
        ZEIT=`date +"%H:%M:%S"`
        echo -e "-------------------- NEXT LINE BACKUP $ZEIT --------------------"
        echo `pwd`
                verzeichnis=""
                dateiname=""
                dateiname=`pwd | awk -F '\/' '{ print $5 }'`
                verzeichnis=`pwd`
        dateiname="etc_complete_backup_""$filebase"".tar.gz"
                echo "Erstelle Backup $dateiname aus dem Verzeichnis $verzeichnis......"
                `/usr/bin/nice /bin/tar cfz $BS_LOCAL_DIR$dateiname $verzeichnis/*`;
echo "Datei $dateiname wird auf den Server übertragen........";
curl -T $BS_LOCAL_DIR$dateiname ftp://$BS_USERNAME@$BS_ADDRESS
echo "Datei wurde erfolgreich übertragen......";

fi

done

for dir in /var/www/virtual/*
        do

if [ -d "$dir" ] ;
        then
        cd "$dir"
        cd "$zo"
        ZEIT=`date +"%H:%M:%S"`
        echo -e "-------------------- NEXT LINE BACKUP $ZEIT --------------------"
        echo `pwd`
                verzeichnis=""
                dateiname=""
                dateiname=`pwd | awk -F '\/' '{ print $5 }'`
                verzeichnis=`pwd`
        dateiname="$dateiname""_complete_backup_""$filebase"".tar.gz"
                echo "Erstelle Backup $dateiname aus dem Verzeichnis $verzeichnis......"
                `/usr/bin/nice /bin/tar cfz $BS_LOCAL_DIR$dateiname $verzeichnis/*`;
echo "Datei $dateiname wird auf den Server übertragen........";
curl -T $BS_LOCAL_DIR$dateiname ftp://$BS_USERNAME@$BS_ADDRESS
echo "Datei wurde erfolgreich übertragen......";

fi

done

ZEITEND=`date +"%H:%M:%S"`
echo -e "-------------------- END BACKUP $ZEITEND --------------------\n\n";

exit

dies bezieht sich auf eine Debian Installation, evtl den Pfad zum ispcp ändern


RE: [REOPEN]Backup auf externem Server - maggot - 04-04-2010 11:56 PM

Danke, probier ich aus...aber heute nicht....erstmal Ostereier suchen Smile


RE: [REOPEN]Backup auf externem Server - maggot - 05-18-2010 07:37 AM

ups, da hab ich doch glatt das externe Backup verschludert....

Ich habe es gerade mit deinem Script ausprobiert, allerdings bekomme ich nun die Meldung :

curl: (6) Couldn't resolve host ''
Datei wurde erfolgreich übertragen......

aber es ist absolut nix auf dem Backupspace user und pass sollten richtig sein, das Netzwerk ist einwandfrei konfiguriert...komisch das alles.

In /backups/tmp/backups ist das DB-Backup und in /tmp/backups alles zusammen, übertragen wird leider nichts.

Edit: curl scheint wirklich keine Daten zu bekommen
curl -v4T $BS_LOCAL_DIR$dateiname ftp://$BS_USERNAME@$BS_ADDRESS
liefert:
* getaddrinfo(3) failed for :21
* Couldn't resolve host ''
* Closing connection #0

Mit Curl direkt auf der Konsole gehts.....