Backup Script für SQL und FTP

biba31848

New Member
Hallo liebe Gemeinschaft,

ich habe einen Confixx Reseller Plan bei einem bekannten Hoster.
Nun möchte ich dort, für jedes angelegt web eine Backupfunktion haben.

Diese sollte folgendes leisten:
____________________________________

Nachts zu einer bestimmten Uhrzeit sollte das script per Cronjob angestossen werden.
Er soll sich die SQL Datenbank und den gesammten FTP Inhalt holen, in ein Archiv packen, und auf einen externen FTP Server in ein bestimmtes Verzeichniss hochladen.

Die Archive sollen mit Datum und Domain versehen werden.

Optimal wäre es, wenn das script 14 Backups anlegt, also 2 Wochen (es gehen auch 4 Wochen), und dann am 15. Tage wieder das erste automatisch löscht, so dass ich immer 14 Tage Backup vorhalten kann.

Jedes angelegte Web soll einzeln durchlaufen.

Bei weiteren Fragen oder unklarheiten, erbitte um ein eine kurze Mail.

Über die Kosten für die Erstellung wird dann persöhnlich gesprochen!!!

MFG
wbl-webservice
 
Last edited by a moderator:
Hi

wir haben hier ein solches Script im Einsatz, das täglich sowohl alle Datenbanken, als auch die Inhalte der webX/html-Verzeichnisse gepackt auf einen externen Server speichert (per SCP aber FTP wäre auch möglich).

Die Dateien werden unter dem Namen webX und dem Tag des Monats (also z.B. web8_15.tar.gz) gespeichert.

Aktuell arbeiten wir an einer Einbindung in den User-Bereich des Confixx-Panels, so dass jeder Kunde selbst eine Wiederherstellung anstoßen kann.

Bei Interesse melde Dich mal.
Ich habe Dir übrigens eine PM geschrieben.


Freundliche Grüße

peppich01
 
Willst du ein solches Skript nicht mit uns teilen, oder ist es eher ein kommerzielles Skript?
 
Code:
#!/bin/bash

# Backup aller Userdatenbanken und Webverzeichnisse fuer Confixx
# Die Backups werden per SCP auf einem Remote-Server gesichert.
# 
#
# Dieses Script basiert auf dem mysql-Bckup-Script aus der
# nixCraft shell script collection (NSSC)
# http://www.cyberciti.biz/nixcraft/vivek/blogger/2005/01/mysql-backup-script.html
# Last updated: Nov - 2010
# --------------------------------------------------------------------
# This is a free shell script under GNU GPL version 2.0 or above
# Copyright (C) 2010 peppich01



##########################################################################################################################
#######################################  H I E R     E D I T I E R E N  ##################################################
##########################################################################################################################

SCPHOST="ip.ip.ip.ip"				# Backupserver (SCP)
SCPUSER="username"				# Remoteuser
SCPDIR="/backup"				# Verzeichnis auf dem Backupserver
EMAIL="emailempfaenger@dom.tld"			# Benachrichtigungsempfänger
DEST="/backup"					# Unterverzeichnisse webs und mysql muessen hier vorhanden sein
SKIP="test information_schema confixx mysql" 	# mySql-Datenbanken, fuer die kein Backup gemacht werden soll

##########################################################################################################################
##########################################################################################################################
##########################################################################################################################
 
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"
HOST="$(hostname)"
NOW="$(date +"%u")" # %u = Tag der Woche
MBD="$DEST/mysql"
WBD="$DEST/webs"
FILE=""
DBS=""
MyUSER="root"
MyHOST="localhost"
sqlpass=`awk -F"=" '/mysqlUserPw/ { print $2 }' /root/confixx/confixx_main.conf`          
MyPASS="${sqlpass//[ \;\']/}"

echo "SERVER-Backup: " > backuplog.txt
echo "==============" >> backuplog.txt
echo "Backup gestartet `date +"%d.%m.%Y,%H:%M"`" >> backuplog.txt
echo " " >> backuplog.txt 

####################################
# Liste aller Datenbanken erstellen und dump erzeugen
DBS="$($MYSQL -u $MyUSER -h $MyHOST -p${MyPASS} -Bse 'show databases')"
for db in $DBS
do
    skipdb=-1
    if [ "$SKIP" != "" ];
    then
	for i in $SKIP
	do
	    [ "$db" == "$i" ] && skipdb=1 || :
	done
    fi
 
    if [ "$skipdb" == "-1" ] ; then
	FILE="$MBD/sql-${db}-$NOW.gz"
        $MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db | $GZIP -9 > $FILE
	scp $FILE ${SCPUSER}@${SCPHOST}:${SCPDIR}/sql-${db}-$NOW.gz
	if [ "$?" != 0 ]
		then
    			echo "!!! Fehler beim SCP-Transfer von $FILE" >> backuplog.txt
			echo "!!! Datei nicht gelöscht!" >> backuplog.txt
		  else
			echo "SCP-Transfer von $FILE erfolgreich" >> backuplog.txt
			rm $FILE
	fi
    fi
done

####################################
# Backup aller /var/www/webX/html Verzeichnisse
for x in /var/www/web[0-9]*; 
do
	export foo=${x#/var/www/}
	FILE="$WBD/$foo-$NOW.tar.gz"
	tar czfP $FILE $x/html;
	scp $FILE ${SCPUSER}@${SCPHOST}:${SCPDIR}/$foo-$NOW.tar.gz
	if [ "$?" != 0 ]
                then
                        echo "Fehler beim SCP-Transfer von $FILE" >> backuplog.txt
                        echo "Datei nicht gelöscht!" >> backuplog.txt
                  else
                        echo "SCP-Transfer von $FILE erfolgreich" >> backuplog.txt
                        rm $FILE
        fi
done

echo " " >> backuplog.txt
echo "SERVER-Backup beendet am `date +"%d.%m.%Y,%H:%M"`" >> backuplog.txt
mail -s"Server-Backup-Info" $EMAIL < backuplog.txt


Bitteschöööön!
 
Last edited by a moderator:
Back
Top