Nun.. Das Skript ist simpel und hat mir immer geholfen. Im WoltLab-Forum findest du andere Skripte und da wird alles mögliche propagiert. Allerdings sind mir die meisten anderen Skripte zu kompliziert aufgebaut. Bei meinem, sollte man darauf achten genug Webspace zu haben und natürlich auch ab und an mal drauf zu schauen. Die Verwendung geschieht auf eigener Gefahr.
Bash: backup.sh
#!/bin/bash
# Titel: Backup-Script
# Description: Sicherung von /httpdocs /log und MYSQL-Datenbanken und automatisch auf einen festgelegten FTP-Server hochladen.
# Copyright: M.Rudolph 2019
# Version 3.5
# Allgemeine Angaben
MYSQL_SERVER=localhost
MYSQL_DATENBANKNAME=beispieldatenbankname999
MYSQL_USER=datenbankuser999
MYSQL_PASS=*123456#beiSPIEL!PASSwort
FTP_SERVER=domain.de # Bsp.: FTP-Server -> wo das Backup hin soll.
FTP_USER=wsc-host # Bsp.: FTP-Username
FTP_PASS=*123456#beiSPIEL!PASSwort # Bsp.: Das Passwort vom FTP-User
# Festlegung des Datums - Format: 20210210
DATE=`date +"%Y-%m-%d"`
# Pfadangabe
lokal_file=httpdocs/bg # Bsp.: EXAKTE Pfadangabe wie hier zu sehen. Der Ordner "/bg" muss erstellt worden sein und mit htaccess.-geschützt sein.
# Projektname
Projektname=meinprojekt # Bsp.: Der Projektname ist der Dateiname später.
# ENDE DER EINSTELLUNGEN
# Backup-Verzeichnis anlegen
mkdir /tmp/backup
mkdir /tmp/backup/mysql
# Verzeichnisse die ins Backup integriert werden sollen
cp -r /var/www/vhosts/domain.de/httpdocs /tmp/backup
# cp -r /var/www/vhosts/domain.de/logs /tmp/backup
cd /tmp/backup/mysql
# Sicherung der Datenbanken -hMYSQL_SERVER
mysqldump -AaCceQ --all-databases --add-drop-table -u$MYSQL_USER -p$MYSQL_PASS > dump.sql
cd ../
# Alle Dateien mit tar.bz2 komprimieren
tar cjfp $Projektname-httpdocs-$DATE.tar.bz2 httpdocs
# tar cjfp $Projektname-logs-$DATE.tar.bz2 logs
tar cjfp mysql-$DATE.tar.bz2 mysql
# Alle komprimierten Dateien per FTP auf den Backup-Server laden
ftp -ni << END_UPLOAD
open $FTP_SERVER
user $FTP_USER $FTP_PASS
bin
cd $lokal_file
mput *.tar.bz2
quit
END_UPLOAD
# Anschliessend alle auf den Server angelegten Dateien wieder loeschen
rm -r -f /tmp/backup
echo ==================================================
echo 1. MySQLDump wurde erstellt.
echo 2. Verzeichnisse wurden gesichert.
echo 3. Alle Daten wurden gepackt und nach ftp-server.de/bg/ transferiert.
echo 4. Ende
echo ==================================================
Alles anzeigen