![]() |
|
Webserver Fragen zum Apache, MySQL-Einrichtung und was sonst noch mit WebServern zu tun hat |
|
Themen-Optionen | Ansicht |
![]() |
#11 | |||||||||||
Neuling
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 ![]() |
![]()
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" Ge?ndert von Networking Homer (06.02.2011 um 00:54 Uhr) |
|||||||||||
![]() |
![]() ![]() ![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, G?ste: 1) | |
|
|