Wir können durch über eine API die Zugangsdaten aller gehosteten DBs abfragen, daher nutze ich hierfür bereits ein eigenes Script.
Dennoch vielen Dank für die Information, dieses Script ist sicherlich in anderem Rahmen sehr nützlich.
Wir geben Euch einen kleinen Einblick in unsere eigene Software für automatische Backups von TYPO3- und WordPress-Webseiten.
sudo ssh-keygen -t dsaDamit werden eigene Schlüsselpaare erzeugt. Die Passphrase sollte leer sein, da sonst später beim Cronjob diese abgefragt wird. Es entstehen somit Dateien mit den Schlüsselpaaren: /root/.ssh/id_dsa und /root/.ssh/id_dsa.pub Die *.pub-Dateien können nun auf den Zielhost kopiert und dort an ~/.ssh/authorized_keys angehängt werden:
ssh-copy-id -i /root/.ssh/id_dsa.pub user@remote-systemOder, wenn ssh-copy-id nicht vorhanden ist:
cat /root/.ssh/*.pub | ssh user@remote-system 'umask 077; cat >>.ssh/authorized_keys'Jetzt sollte es möglich sein sich per
ssh user@remote-systemeinzuloggen ohne ein Passwort einzugeben.
sudo apt-get install rsnapshot, rsyncZur manuellen Installation bitte hier nachlesen:http://www.rsnapshot.org/howto/1.2/rsnapshot-HOWTO.en.html#installation
snapshot_root /home/undkonsorten/.snapshots/ cmd_cp /bin/cp cmd_rm /bin/rm cmd_rsync /usr/bin/rsync cmd_ssh /usr/bin/ssh cmd_logger /usr/bin/logger cmd_du /usr/bin/du cmd_rsnapshot_diff /usr/bin/rsnapshot-diffDann habe ich aktiviert, das auch monatliche Snapshots angelegt werden.
interval monthly 3Jetzt wird eingestellt welche Server alle zu sichern sind:
backup user@example1.com:/path/ example1.com/ backup user@example2.com:/path/ example2.com/Der letzte Eintrag example1.com/ bezeichnet den Ordner in dem lokal das Backup gespeichert werden soll. Für weiter Einstellungen bitte unter http://www.rsnapshot.org/howto/1.2/rsnapshot-HOWTO.en.html#configuration nachlesen. Wenn das Script per Cronjob ausgeführt wird, dann loggt sich der Backupserver per SSH auf die zu sichernden Rechner ein und startet das inkrementelle Backup, in diesem Beispiel jeden Montag, Mittwoch und Sonntag jeweils um 3:00 Uhr, Sonntags um 3:00 Uhr wird der wöchentliche Snapshot erstellt und jeden 1. im Monat um 3:00 Uhr der monatliche.
crontab -e 0 3 * * 1,3,7 /usr/bin/rsnapshot daily 0 3 * * 7 /usr/bin/rsnapshot weekly 0 3 1 * * /usr/bin/rsnapshot monthly
backup_script /usr/bin/ssh user@example.com "mysqldump --user=USER --password=PASSWORD --host=HOST --quote-names --opt --compress --ignore-table=database.table1 --ignore-table=database.table2 --ignore-table=database.table3 DATABASE | bzip2 > database.sql.bz2" unused1/wichtig sind hierbei die TABS:
backup_script {tab} befehl {tab} relatives ZielDieses "relative Ziel" ist ein Pfad, der bei script aufrufen nicht benutzt aber benötigt wird, daher "unused1/" ;-) Die Option --ignore-table ist sehr praktisch gerade für Typo3 Seiten, da so nicht wirklich benötigte Tabellen ausgelassen werden (z.B. die cache Tabellen) können. Da diese oft sehr gross werden wird das Backup durch das auslassen schnell und kleiner. Dies sähe dann so aus:
--ignore-table=database.cache_extensions --ignore-table=database.cache_hash --ignore-table=database.cache_imagesizes --ignore-table=database.cache_md5params --ignore-table=database.cache_pages --ignore-table=database.cache_pagesection --ignore-table=database.cache_sys_dmail_stat --ignore-table=database.cache_typo3temp_log --ignore-table=database.index_config --ignore-table=database.index_debug --ignore-table=database.index_fulltext --ignore-table=database.index_grlist --ignore-table=database.index_phash --ignore-table=database.index_rel --ignore-table=database.index_section --ignore-table=database.index_stat_search --ignore-table=database.index_stat_word --ignore-table=database.index_words --ignore-table=database.tx_realurl_urlencodecacheDie zweite Möglichkeit ist ein Script auf dem Server aufzurufen:
backup_script /usr/bin/ssh user@example.com "/backup/sqlbackup" example.com/unused1/In diesem Fall ist sqlbackup ein Backupscript mit allen nötigen Einstellungen. Ich benutze übrigens AutoMySQLBack. Welches rotierende snapshots von den Datenbanken legt. Ein volles Backup auf einem Server sieht dann bei mir so aus:
backup_script /usr/bin/ssh user@example.com "/backup/sqlbackup" example.com/unused1/ backup user@example.com:/html/ example.com/ backup user@example.com:/backup/dump/ example.com/ backup_script /usr/bin/ssh user@example2.com "/backup/sqlbackup" example2.com/unused1/ backup user@example.com:/html/ example2.com/ backup user@example.com:/backup/dump/ example2.com/Dies liefert dann auf dem Backup-Server folgende Verzeichnisstruktur:
.snapshots/ |-- hourly.0 | |-- example.com | | |-- backup | | | `-- dump | | | |-- daily | | | | `-- database | | | | `-- dump.sql.bz2 | | | |-- monthly | | | |-- weekly | | `-- html | |-- unused1 | `-- example2.com |-- daily.X |-- weekly.X |-- monthly.X ..... usw.So, ich wünsche Euch gut laufende Seiten und dass Ihr Eure Backups nicht zu oft herauskramen müsst. Ich bin gespannt auf Kritik, Anregungen, Tipps.
Wir können durch über eine API die Zugangsdaten aller gehosteten DBs abfragen, daher nutze ich hierfür bereits ein eigenes Script.
Dennoch vielen Dank für die Information, dieses Script ist sicherlich in anderem Rahmen sehr nützlich.
Das Skript ist nicht nur für Typo3, es kann im Prinzip für alles verwendet werden. Wir haben auch nicht nur Typo3 Seiten.
Falls ein CMS nicht von Haus aus unterstützt wird (im Moment werden nur Typo3 und Wordpress unterstützt), müssen halt die Datenbankverbindungsparameter manuell eingegeben werden und können nicht automatisch aus der Konfigurationsdatei des betreffenden CMS gelesen werden.
Dies ist ja das Standardverhalten der meisten Backuptools.
Weiterhin können auch Parser für andere CMS hinzugefügt werden.
Danke für den Hinweis, wir sind jedoch leider nicht genug auf ein CMS fokussiert:
- Contao
- Contenido
- Wordpress
- Typo3
- Statische und individuelle Umsetzungen
Da brauchen wir ein allgemeinere Backuplösung.
Ebenfalls Danke, momentan benutzen wir die hier beschriebene Technik aber nicht mehr. Sondern benutzen unser eigenes <a href="http://https://blog.undkonsorten.com/staysafe-backup-universelles-backup-tool-fur-typo3-und-wordpress-projekte" title="StaySafe Backup: universelles Backup-Tool für TYPO3 und WordPress-Projekte">Skript</a>.
Danke! Artikel gibt einen guten Überblick und zeigt wie andere Webmaster mit vergleichbaren Szenarien umgehen :-)