NetVision-Technik

Zur?ck   NetVision-Technik > Forum > Server > Webserver

Webserver Fragen zum Apache, MySQL-Einrichtung und was sonst noch mit WebServern zu tun hat

 
 
Themen-Optionen Ansicht
Alt 06.02.2011, 00:47   #11
Networking Homer
Neuling
Punkte: 17, Level: 1 Punkte: 17, Level: 1 Punkte: 17, Level: 1
Levelaufstieg: 33% Levelaufstieg: 33% Levelaufstieg: 33%
Aktivität: 25,0% Aktivität: 25,0% Aktivität: 25,0%
 
Benutzerbild von Networking Homer
 
Registriert seit: 06.02.2011
Beitr?ge: 1
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Downloads: 0
Uploads: 0
Nachrichten: 0
Renommee-Modifikator:
0 Networking Homer befindet sich auf einem aufstrebenden Ast
Standard

Das Script von Zero111 finde ich super und ich habe es weiterentwickelt. Meine Version hat folgende Features:

- Verzeichnis- und Dateisicherung via zip
- Backup von 6 DBs
- 2 FTP-Verbindungen via lftp
- FTP 1 soll via TLS verschlüsselt sein (Hinweise dazu im Script)
- FTP 2 darf unverschlüsselt sein, ZIP wird aber automatisch mit ccrypt verschlüsselt
- Via FTP werden OLD-Dateien des alten Backups erstellt. Die letzte OLD-Datei wird automatisch gelöscht
- Der Backup-Dateiname bleibt bei mir gleich (keine Datumsanpassung)
- SQL-Dump verarbeitet auch große Tables (>300)

Vielen Dank an dieser Stelle an Zero111 für die tolle Inspiration!

Nun zum Script:

Code:
##!/bin/sh
# ccrypt und lftp erforderlich (apt-get install ...)

###################################################################################
# Zu sichernde Verzeichnisse und Dateien bestimmen.                               #	
# Beispiel Verzeichnisangabe: /var/www/sichermich/                                #
# Beispiel-Zip-File-Angabe: sichermich.zip                                        #
# Zip-Option (z.B. -r f¸r Unterverzeichnisse) wahlen                              #
# commandX: Raute vorsetzen, wenn nicht genutzt! Vermeidet komische ".Zip"-Files! #
###################################################################################

# Die Meldung wie ./backupscript.txt: line 231: /var/www/ zips/: is a directory" sind normal,
# wenn nicht alle 10 Verzeichnisvariablen (VZ1-10) besetzt sind.


VZ1="/var/www/vhosts/sichermich/"
zip1="sichermich.zip"
zipopt1="-r"
command1="zip"

VZ2=""
zip2=""
zipopt2=""
#command2="zip"

VZ3=""
zip3=""
zipopt3=""
#command3="zip"

VZ4=""
zip4=""
zipopt4=""
#command4="zip"

VZ5=""
zip5=""
zipopt5=""
#command5="zip"

VZ6=""
zip6=""
zipopt6=""
#command6="zip"

VZ7=""
zip7=""
zipopt7=""
#command7="zip"

VZ8=""
zip8=""
zipopt8=""
#command8="zip"

VZ9=""
zip9=""
zipopt9=""
#command9="zip"

VZ10=""
zip10=""
zipopt10=""
#command10="zip"


############################################################################
# Speicherorte fur Dateien/Verzeichnisse, Datenbanke und Backupfile        #
############################################################################

# Name der Backup-Datei
BACKUP_FILE="Backup.zip"


# temporaerer Speicherort des Backup-Archivs
BACKUP_TMP="/var/www/tempzip/"

# kompletter Pfad zum Backup
BACKUP=${BACKUP_TMP}${BACKUP_FILE}

# Temporarer Speicherort der Verzeichnisse und Dateien sowie die DBs
BACKUP_DATA="/var/www/zips/"

# Passwort f¸r ccrypt-Datei
ccr="passwort"

###########################################################################
# Datum initialisieren                                                    #
###########################################################################

DATUM=`date '+%d.%m.%Y'`

############################################################################
# FTP-Daten: (1) mit TLS (2) ohne TLS aber dafür mit ccrypt-Verschlusselung#
############################################################################

# Host TLS (1) TLS notwendig, da ansonsten ein unverschlüsseltes ZIP ubertragen wird.
# TLS muss in der /etc/lftp.conf und an der Gegenstelle eingerichtet sein.

FTP_SERVER=""
FTP_PORT="21"
FTP_USER=""
FTP_PASSWORT=""


# Host ohne TLS (2), ZIP wird dafür mit ccrypt verschlüsselt
FTP_SERVER2=""
FTP_PORT2="21"
FTP_USER2=""
FTP_PASSWORT2=""

############################################################################
# Info zur Aktivierung von TLS in lftp (/etc/lftp.conf)                    #
############################################################################

#TLS-Aktivierung f¸r /etc/lftp.conf:

#set ftp:ssl-allow true
##set ftp:ssl-force true
#set ftp:ssl-protect-data true
#set ftp:ssl-protect-list true

############################################################################
# Datenbank-Daten (User, DB-Name, Passwort) fur 6 Datenbanke               #
############################################################################


# Host 
DB_HOST="localhost"

#### Datenbank 1 #############################

# User
DB_USER_1=""

# Passwort
DB_PASSWORT_1=""

# Name
DB_NAME_1=""

#### Datenbank 2 ##############################

# User
DB_USER_2=""

# Passwort
DB_PASSWORT_2=""

# Name
DB_NAME_2=""

#### Datenbank 3 ##############################

# User
DB_USER_3=""

# Passwort
DB_PASSWORT_3=""

# Name
DB_NAME_3=""

#### Datenbank 4 ###############################

# User
DB_USER_4=""

# Passwort
DB_PASSWORT_4=""

# Name
DB_NAME_4=""

#### Datenbank 5 ###############################

# User
DB_USER_5=""

# Passwort
DB_PASSWORT_5=""

# Name
DB_NAME_5=""

###############################################
#### Datenbank 6 ####

# User
DB_USER_6=""

# Passwort
DB_PASSWORT_6=""

# Name
DB_NAME_6=""

#################################################
#####                                       #####
#####   Sicherung der Ordner und Dateien    #####
#####                                       #####
#################################################
echo "[`date '+%d.%m.%Y %H:%M:%S'`] Die Dateien und Verzeichnisse werden gezippt."

CD  ${VZ1}
${command1} ${zipopt1} ${BACKUP_DATA}${zip1} *

CD  ${VZ2}
${command2} ${zipopt2} ${BACKUP_DATA}${zip2} *

CD  ${VZ3}
${command3} ${zipopt3} ${BACKUP_DATA}${zip3} *

CD  ${VZ4}
${command4} ${zipopt4} ${BACKUP_DATA}${zip4} *

CD  ${VZ5}
${command5} ${zipopt5} ${BACKUP_DATA}${zip5} *

CD  ${VZ6}
${command6} ${zipopt6} ${BACKUP_DATA}${zip6} *

CD  ${VZ7}
${command7} ${zipopt7} ${BACKUP_DATA}${zip7} *

CD  ${VZ8}
${command8} ${zipopt8} ${BACKUP_DATA}${zip8} *

CD  ${VZ9}
${command9} ${zipopt9} ${BACKUP_DATA}${zip9} *

CD  ${VZ10}
${command10} ${zipopt10} ${BACKUP_DATA}${zip10} *

#################################################
#####                                       #####
#####      Laufende Prozesse anhalten       #####
#####                                       #####
#################################################

# Apache Beenden
echo "[`date '+%d.%m.%Y %H:%M:%S'`] Apache Webserver beenden"
/etc/init.d/apache2 stop



#################################################
#####                                       #####
#####   Sicherung der Datenbanken           #####
#####                                       #####
#################################################

DB_1="${DB_NAME_1}${DATUM}.gzip"
DB_2="${DB_NAME_2}${DATUM}.gzip"
DB_3="${DB_NAME_3}${DATUM}.gzip"
DB_4="${DB_NAME_4}${DATUM}.gzip"
DB_5="${DB_NAME_5}${DATUM}.gzip"
DB_6="${DB_NAME_6}${DATUM}.gzip"

# SQL-Datenbanke sichern
echo "[`date '+%d.%m.%Y %H:%M:%S'`] Datenbank:${DB_NAME_1} sichern"
mysqldump --skip-lock-tables -h ${DB_HOST} -u${DB_USER_1} -p${DB_PASSWORT_1} ${DB_NAME_1} | gzip -9c > ${BACKUP_DATA}${DB_1}

echo "[`date '+%d.%m.%Y %H:%M:%S'`] Datenbank:${DB_NAME_2} sichern"
mysqldump -h ${DB_HOST} -u${DB_USER_2} -p${DB_PASSWORT_2} ${DB_NAME_2} | gzip -9c > ${BACKUP_DATA}${DB_2}

echo "[`date '+%d.%m.%Y %H:%M:%S'`] Datenbank:${DB_NAME_3} sichern"
mysqldump --skip-lock-tables -h ${DB_HOST} -u${DB_USER_3} -p${DB_PASSWORT_3} ${DB_NAME_3} | gzip -9c > ${BACKUP_DATA}${DB_3}


echo "[`date '+%d.%m.%Y %H:%M:%S'`] Datenbank:${DB_NAME_4} sichern"
mysqldump --skip-lock-tables -h ${DB_HOST} -u${DB_USER_4} -p${DB_PASSWORT_4} ${DB_NAME_4} | gzip -9c > ${BACKUP_DATA}${DB_4}


echo "[`date '+%d.%m.%Y %H:%M:%S'`] Datenbank:${DB_NAME_5} sichern"
mysqldump --skip-lock-tables -h ${DB_HOST} -u${DB_USER_5} -p${DB_PASSWORT_5} ${DB_NAME_5} | gzip -9c > ${BACKUP_DATA}${DB_5}


echo "[`date '+%d.%m.%Y %H:%M:%S'`] Datenbank:${DB_NAME_6} sichern"
mysqldump --skip-lock-tables -h ${DB_HOST} -u${DB_USER_6} -p${DB_PASSWORT_6} ${DB_NAME_6} | gzip -9c > ${BACKUP_DATA}${DB_6}


# Apache starten
echo "[`date '+%d.%m.%Y %H:%M:%S'`] Apache Webserver starten"
/etc/init.d/apache2 start

############################################################################
# Backup.Zip erstellen, das via FTP hochgeladen wird                       #
############################################################################

echo "[`date '+%d.%m.%Y %H:%M:%S'`] Daten sammeln"
zip -r -q ${BACKUP} ${BACKUP_DATA}


############################################################################
# FTP 1  und 2: Alte .old loschen und neue .old auf FTP-Server erstellen.  #
############################################################################
#FTP 1: Losche alte OLD und benenne ZIP in OLD um.

echo "[`date '+%d.%m.%Y %H:%M:%S'`] lftp Steuerdatei fur Umbenennung auf ${FTP_SERVER} erstellen"
touch /root/rename.ftp
echo "#rename.ftp" >> /root/rename.ftp
echo "open ${FTP_SERVER}:${FTP_PORT}" >> /root/rename.ftp
echo "user ${FTP_USER} ${FTP_PASSWORT}" >> /root/rename.ftp
echo "rm   ${BACKUP_FILE}.old" >> /root/rename.ftp
echo "mv   ${BACKUP_FILE} ${BACKUP_FILE}.old" >> /root/rename.ftp





echo "[`date '+%d.%m.%Y %H:%M:%S'`] Lösche alte OLD-Datei und erstelle eine Neue auf ${FTP_SERVER}"
lftp -f /root/rename.ftp
echo "[`date '+%d.%m.%Y %H:%M:%S'`] fertig auf ${FTP_SERVER}"

#############################################################################

#FTP 2: Losche alte OLD und benenne ZIP in OLD um.

echo "[`date '+%d.%m.%Y %H:%M:%S'`] lftp Steuerdatei fur Umbenennung auf ${FTP_SERVER2} erstellen"
touch /root/rename2.ftp
echo "#rename2.ftp" >> /root/rename2.ftp
echo "open ${FTP_SERVER2}:${FTP_PORT}" >> /root/rename2.ftp
echo "user ${FTP_USER2} ${FTP_PASSWORT2}" >> /root/rename2.ftp
echo "rm   ${BACKUP_FILE}.cpt.old" >> /root/rename.ftp
echo "mv   ${BACKUP_FILE}.cpt ${BACKUP_FILE}.cpt.old" >> /root/rename2.ftp





echo "[`date '+%d.%m.%Y %H:%M:%S'`] Lösche alte OLD-Datei und erstelle eine Neue auf ${FTP_SERVER}"
lftp -f /root/rename2.ftp
echo "[`date '+%d.%m.%Y %H:%M:%S'`] fertig auf ${FTP_SERVER}"




############################################################################
# Neue Zips per ftp hochladen.    (TLS und ZIP)                            #
############################################################################
# lftpt Steuerdatei erstellen (TLS)
echo "[`date '+%d.%m.%Y %H:%M:%S'`] lftp Steuerdatei erstellen TLS-ZIP"
touch /root/backup.ftp
echo "#backup.ftp" >> /root/backup.ftp
echo "open ${FTP_SERVER}:${FTP_PORT}" >> /root/backup.ftp
echo "user ${FTP_USER} ${FTP_PASSWORT}" >> /root/backup.ftp
echo "put  ${BACKUP}" >> /root/backup.ftp




# Backup Daten auf FTP uebertragen
echo "[`date '+%d.%m.%Y %H:%M:%S'`] Backup auf FTP-Server ${FTP_SERVER} ¸bertragen"
lftp -f /root/backup.ftp

############################################################################
# Neue Zips per ftp hochladen.    (ohne TLS aber mit ccrypt)               #
############################################################################

CD  ${BACKUP_TMP}
ccrypt -e -K ${ccr} -f ${BACKUP}

# lftpt Steuerdatei erstellen (offen, aber cryptet)
echo "[`date '+%d.%m.%Y %H:%M:%S'`] lftp Steuerdatei erstellen f¸r CRYPT-‹bertragung"
touch /root/backup2.ftp
echo "#backup2.ftp" >> /root/backup2.ftp
echo "open ${FTP_SERVER2}:${FTP_PORT}" >> /root/backup2.ftp
echo "user ${FTP_USER2} ${FTP_PASSWORT2}" >> /root/backup2.ftp
echo "put  ${BACKUP}.cpt" >> /root/backup2.ftp



# Backup Daten auf FTP uebertragen
echo "[`date '+%d.%m.%Y %H:%M:%S'`] Backup auf FTP Server ${FTP_SERVER2} ¸bertragen (ZIP, offen, CRYPz.cpt)"
lftp -f /root/backup2.ftp




#################################################
#####                                       #####
#####        Abschliessende Arbeiten        #####
#####                                       #####
#################################################

# Temporaere Daten loeschen
echo "[`date '+%d.%m.%Y %H:%M:%S'`] Temporare Daten loschen"
rm  -f /root/*.ftp 

rm  -f ${BACKUP} ${BACKUP}.cpt

rm  -f ${BACKUP_DATA}${DB_1} ${BACKUP_DATA}${DB_2} ${BACKUP_DATA}${DB_3} ${BACKUP_DATA}${DB_4} ${BACKUP_DATA}${DB_5} ${BACKUP_DATA}${DB_6}

rm  -f ${BACKUP_DATA}*.*



### FERTIG ###
echo "[`date '+%d.%m.%Y %H:%M:%S'`] Fertig"
Angeh?ngte Dateien
Dateityp: txt backupscript.txt (10,9 KB, 2x aufgerufen)

Ge?ndert von Networking Homer (06.02.2011 um 00:54 Uhr)
Networking Homer ist offline   Mit Zitat antworten Nach oben
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, G?ste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beitr?ge zu antworten.
Es ist Ihnen nicht erlaubt, Anh?nge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beitr?ge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:15 Uhr.


Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Template-Modifikationen durch TMS