Letzte Änderung:
Die meisten Provider bieten standardmäßig Backups des gesamten Webspaces an(Datenbank und Dateien). Das Problem ist, dass dafür in der Regel keine Gewährleitung gegeben wird(meistens nachzulesen in den Allgemeinen Geschäftbedingungen der Provider). D.h. im schlimmsten Fall kann es sein, dann Sie ohne Website "dastehen" oder hoffen müssen, irgendwo eine alte Kopie zu finden.
Das sind die Vorteile unseres Backup-Programms:
Für ein vollständiges TYPO3 Backup sind in der Regel folgende Daten zu sichern:
Da TYPO3 selbst in nahezu jeder Version zum Download zur Verfügung steht, ist eine komplette Sicherung des typo3-Ordners nicht erforderlich.
Bei dem Programm handelt es sich um ein Bash-Skript, das unter einer geeigneten Unix-Umgebung läuft.
Es können 2 verschiedene Arten von Datensicherungen vorgenommen werden:
Die Daten werden in eimen (tar-)Archiv zusammengfasst und dann passwortgeschützt komprimiert. Abschließend wird eine Mail an eine hinterlegte Adresse geschickt, die die wichtigsten Daten und ggf. augetretene Fehler enthält:
Bsp.:
backup scope: database and files
number of errors in errorlog: 1 (see below)
size of database dump: 51M
complete size of backup: 415M
end of backup process: 2021-05-25_15:14:58
---------------------------------------------------------------------
Warning: Using a password on the command line interface can be insecure.
Eine Spiegelung der Daten, um dann auch unabhängig von der Serververfügbarkeit zu sein, ist ebenfalls kein Problem. Die Dateien können jederzeit über eine sichere Verbindung auf andere Server gespielt werden. Der Passwortschutz bietet eine zusätzliche Sicherheit und gewährleistet, dass nur befugte Mitarbeiter Zugriff auf die Daten haben.
Das Backup-Programm kann mit entsprechenden Kenntnissen in der Shellprogrammierung nahezu jede Backupstrategie abbilden.
Standardmäßig ist folgendes Konzept vorgesehen:
Hinweis:
Bitte beachten Sie, dass die Datensicherungen ggf. persönliche Daten enthalten(z.B. Formulardaten). Diese dürfen aus Datenschutzgründen i.d.R. nur eine gewisse Zeit gespeichert werden(siehe hierzu auch TYPO3 und DSGVO)
Das Programm ist unter der GNU General Public License lizensiert und wird somit kostenlos zur Verfügung gestellt. Für die Installation berechnen wir folgende Kosten:
Unsere Leistung | Non-Profit | Kommerziell |
---|---|---|
Installation, Umsetzung einer Backup-Strategie, Test und Inbetriebnahme | 390,00 € | 450,00 € |
Spiegelung der Daten auf einen weiteren Server | 195,00 € | 225,00 € |
Installation, Konfiguration Backup-Strategie, Test & Inbetriebnahme | |
---|---|
Non-Profit: | 390,00 € |
Kommerziell: | 450,00 € |
Spiegelung der Daten auf einen weiteren Server | |
---|---|
Non-Profit: | 195,00 € |
Kommerziell | 225,00 € |
Sie können den unten stehenden Code verwenden und anpassen. Bitte beachten Sie die Bestimmungen der GNU GPL Lizenz. Inbesondere:
#!/bin/bash
# Copyright 2021 Oliver Wassenaar (WACON Internet GmbH)
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details: <http://www.gnu.org/licenses/>.
# get command line parameter
for arg in "$@"
do
case $arg in
-d|--database)
DB_ONLY=1
shift
;;
-n|--nomail)
NO_MAIL=1
shift
shift
;;
esac
done
# config parameter
sitename=wacon
targetdir=<TARGETDIR>/backup
projectdir=<WEB_ROOTPATH>
backupfile=$sitename$(date +"%Y%m%d")_$$
dbfile=db.sql_$$
logfile=$targetdir/log/log_$$
errorlog=$targetdir/log/error_$$
mailtext=$targetdir/mailtxt_$$
# db credentials
dbname=<DB_NAME>
host=<DB_HOST>
user=<DB_USER>
password=<DB_PASSWORD>
# password of backup file
zippw=<MYPASSWD>
# comma separated list of mail receiver
mailreceiver="<TO_ADDRESS1>, <TO_ADDRESS2>, ..."
mailsender="<SENDER_ADDRESS>"
# delete all log files older than 30 days
find $targetdir/log -maxdepth 1 -type f -name '*' -mtime +30 -exec rm {} \;
exec 1>>$logfile 2>>$errorlog
echo "Begin backup: $(date +%F_%T)"
# delete all db backups older than 7 days (e.g. to run the db backup every day)
find $targetdir/archive/db -maxdepth 1 -type f -name '*' -mtime +7 -exec rm {} \;
# database dump
mysqldump --opt --no-tablespaces -h$host -u$user -p$password $dbname -r $targetdir/$dbfile
cd $targetdir
tar cvf $backupfile $dbfile
if ! [[ -n "$DB_ONLY" ]]
then
# delete all files older than 90 days(in this case you shouldn't run the complete backup too frequently, e.g. once a month)
find $targetdir/archive/all -maxdepth 1 -type f -name '*' -mtime +90 -exec rm {} \;
cd $projectdir
# files of rootpath(e.g. htaccess, favicon, etc.)
find . -maxdepth 1 -type f -print0 | xargs -0 tar rf $targetdir/$backupfile
# important directories (uploads possibly not necessary)
find fileadmin -type f -print0 | xargs -0 tar rvf $targetdir/$backupfile
find typo3conf -type f -print0 | xargs -0 tar rvf $targetdir/$backupfile
find uploads -type f -print0 | xargs -0 tar rvf $targetdir/$backupfile
fi
backupsize=$(du -h $targetdir/$backupfile | awk '{print $1}')
dbsize=$(du -h $targetdir/$dbfile | awk '{print $1}')
# compress files
cd $targetdir
zip -P $zippw $backupfile.zip $backupfile
if ! [[ -n "$DB_ONLY" ]]
then
backupscope="database and files"
# move to archive
mv $backupfile.zip $targetdir/archive/all/
else
backupscope="database ONLY"
mv $backupfile.zip $targetdir/archive/db/
fi
#clean up
rm $backupfile
rm $dbfile
if ! [[ -n "$NO_MAIL" ]]
then
echo "backup scope: $backupscope" > $mailtext
errno=$(wc -l $errorlog | awk '{print $1}')
echo "number of errors in errorlog: $errno (see below)" >> $mailtext
echo "size of database dump: $dbsize" >> $mailtext
echo "complete size of backup: $backupsize" >> $mailtext
echo "end of backup process: $(date +%F_%T)" >> $mailtext
echo "---------------------------------------------------------------------" >> $mailtext
cat $errorlog >> $mailtext
cat $mailtext | mail -s "Backup: $sitename" $mailreceiver -r$mailsender
rm $mailtext
fi
Sie haben noch Fragen oder wünschen eine kostenlose Beratung? Gerne stehen wir Ihnen als TYPO3 Dienstleister zur Verfügung.