Name: Easy Joomla Backup - Version: 3.3.1-FREE / 3.5.4-PRO - Typ: Komponente, Systemplugin und CLI Skript - Lizenz: GPLv3
Beschreibung: EJB erstellt schnell und einfach Backups in Joomla!
Übersicht über alle Downloads zu dieser Erweiterung: EJB - Easy Joomla Backup Downloads
Wenn Sie EJB - Easy Joomla Backup nutzen, dann schreiben Sie bitte ein Review und bewerten Sie die Erweiterung im Joomla! Extensions Directory.
Backups mit Easy Joomla Backup erstellen - Dateien und Datenbank Dump als ZIP Archiv
Komponente: EJB - Easy Joomla Backup
Funktion: Backups von Joomla! Websites erstellen - Komplett-, Datenbank- und Dateienbackup
Sprachen: Deutsch und Englisch
Easy Joomla Backup erstellt komplette Backups ohne jeglichen Schnickschnack. Alle Dateien und ein kompletter Datenbankdump werden in ein Backup Zip-Archiv gespeichert. Mit diesem Archiv hat man alle wichtigen Daten, mit denen man die Website vollständig rekonstruieren kann, in einem Paket zusammengefasst. Die Backups werden in einen speziellen, von außen nicht aufrufbaren Ordner abgelegt und können komfortabel über die Komponente verwaltet werden.
Die Komponente ist extra schlicht gehalten, um nicht vom Wesentlichen abzulenken: dem Sichern der Joomla! Website! In der Übersicht findet man eine komplette Auflistung aller Backups mit einer Downloadoption des jeweiligen Backups. Es gibt folgende Aktionen: Komplettbackup, Datenbankbackup, Dateibackup, Überprüfen, Löschen und Optionen (siehe Tab Installation für mehr Informationen).
Der Zip Prozess ist schnell und Ressourcen-optimiert. Das Skript versucht alle wichtigen Einstellungen zu erhöhen, um Timeouts auf großen Websites zu verhindern. Wenn der Hoster nicht genügend Ressourcen zur Verfügung stellt oder die Ausführung von langen Prozessen beschränkt, dann wird es wahrscheinlich Probleme beim Erstellen der Backuparchive auf großen Websites geben. In diesem Fall sollten Dateien oder Ordner augeschlossen werden, die man nicht jedes Mal sichern muss (z.B.: images Ordner) oder die Ressourcen mit der Hilfe des Hosters erhöht werden.
Die Komponente basiert auf meinem Kubik-Rubik Joomla! Backup Script, für das es einen guten Artikel mit grundlegenden Tipps gibt: Backups in Joomla! erstellen
Jeder Administrator sollte regelmäßig Backups anlegen, um bei Problemen den funktionierenden Zustand wiederherstellen zu können. Vor jeder großen Änderung (Einspielen von Updates oder neuen Erweiterungen) ist ein Backup der Website Pflicht!
Features
- Schnelles und einfaches Erstellen von Backups in Joomla!
- Dynamischer, Ajax-unterstützter Backupprozess
- Automatische Wiederherstellung - Easy Joomla Backup Pro Restore Skript (PRO)
- Dropbox Upload - Backuparchive mit einem Klick in Dropbox hochladen (PRO)
- Erweiterung erstellt Backups aller Dateien und der Datenbank
- 3 verschiedene Backuptypen: Komplett-, Datenbank- und Dateienbackup
- Dateien und Datenbank Dump werden in ein ZIP Archiv gepackt
- Erweiterte ACL Einstellungen: Konfigurieren, Administrationszugriff, Löschen, Download, Komplettbackup, Datenbankbackup, Dateibackup, Überprüfen
- Manuelle Wiederherstellung - Dateien über FTP, Datenbank über Datenbanktool (z.B.: phpMyAdmin)
- Anzeige des Sicherungsfortschritts in Prozent im Tab-/Fenstertitel
- Dateien vom Backuparchiv ausschließen
- Ordner vom Backuparchiv ausschließen
- 'DROP TABLE' Befehl zur Dumpdatei hinzufügen
- Zusätzliche Tabellen aus der Datenbank hinzufügen
- Systemplugin: EJB Cronjob
Installation
Die Erweiterung übers Backend installieren und unter Komponenten - Easy Joomla Backup aufrufen.
Rechts oben kann man die Komponente über die Buttons steuern. Im Inhaltsbereich sieht man eine Auflistung aller vorhandenen Backups. Die Liste kann man durchsuchen, um gezielt nach Backups zu suchen. In der letzten Spalte kann der Download des jeweiligen Backups gestartet werden. Das Runterladen der Backups kann wahlweise über FTP oder direkt mit einem Klick in der Liste auf den Archivnamen erfolgen. Der Download ist nur bei Benutzerstufen aktiviert, die auch dafür die nötigen Rechte besitzen.
Erläuterung zu den einzelnen Buttons:
- Komplettbackup - erstellt ein Backup aller Dateien und der Datenbank.
- Datenbankbackup - erstellt ein Backup der Datenbank.
- Dateibackup - erstellt ein Backup aller Dateien.
- Überprüfen - gleicht der Einträge zu den Backupdateien in der Datenbank mit tatsächlich vorhandenen Dateien ab. Sind Dateien nicht vorhanden, werden die Einträge entfernt. Sind Einträge nicht vorhanden, aber existieren Dateien, dann werden neue Einträge erstellt.
- Löschen - entfernt ausgewählte Einträge und zugehörige Backupdateien.
- Optionen - ruft Optionen der Komponente auf (siehe unten).
In den Einstellungen lassen sich folgende Optionen setzen:
- Dateien vom Backuparchiv ausschließen - schließt einzelne Dateien aus dem Backuparchiv aus. Bei der Eingabe muss für die eindeutige Identifizierung der komplette Pfad zu der Datei angegeben werden.
- Ordner vom Backuparchiv ausschließen - schließt ganze Ordner aus dem Backuparchiv aus. Bei der Eingabe muss für die eindeutige Identifizierung der komplette Pfad zu der Datei angegeben werden.
- 'DROP TABLE' Befehl zur Dumpdatei hinzufügen - fügt den DROP TABLE Befehl zum Datenbankdump hinzu. Damit kann der Dump direkt wieder importiert werden, ohne vorherigem Löschen der vorhandenen Tabellen.
- Zusätzliche Tabellen hinzufügen - fügt weitere Tabellen aus der gleichen Datenbank, die nicht den Joomla! Präfix haben, hinzu.
Bei allen Textbereichen in den Einstellungen wird pro Zeile nur ein Eintrag eingegeben!
Jede Aktion kann über die Joomla! interne ACL genau gesteuert werden. Man kann in den Optionen für jede Benutzergruppe festlegen, welche Aufgaben diese durchführen können. Somit kann man zum Beispiel Downloads der Backups nur für Super Administratoren freigeben, das Sichern jedoch auch normalen Administratoren überlassen.
Bei sehr großen Sites kann es vereinzelt zu Problemen aufgrund von Beschränkungen des Servers kommen. In solchen Fällen kann man durch das Ausschließen von Ordnern oder die Erhöhung der Limits durch den Hoster entgegen wirken. In meiner lokalen Testumgebung habe ich eine Testsite mit über 4 GB ohne Fehler sichern können.
Wenn das Archiv direkt auf dem Server über SSH in der Konsole mit unzip entpackt wird, dann sollten die Zugriffsrechte der Dateien und Ordner nach dem Entpackungsprozess überprüft werden. Wenn notwendig, dann sollten diese mit den folgenden Befehlen korrigiert werden:
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
Wie erstellt man ein Backup?
Auf der Hauptseite der Komponente wählt man den gewünschten Backuptyp aus und klickt auf den entsprechenden Button. Auf der Folgeseite kann man einen individuellen Kommentar zum Backup eingeben, ein Klick auf Backup erstellen startet den Backupprozess. Je nach Größe der Website kann der Prozess mehrere Minuten in Anspruch nehmen. In dieser Zeit sollte man nicht auf der Seite rumklicken oder das Fenster schließen. Nach Beendigung wird man wieder automatisch auf die Übersichtsseite geleitet.
Wie stellt man das Backup wieder her?
Es ist sehr einfach, den Status der Website aus dem Backuparchiv wiederherzustellen. Man kann die von Easy Joomla Backup Pro erstellten Backuparchive mit einem Klick direkt auf dem Server mit Hilfe des eigenständigen Skripts Easy Joomla Backup Pro Restore wiederherstellen! Das Komplettbackup und das Skript werden auf den Server geladen und das Skript im Browser aufgerufen. Mit einem Klick auf den Action-Button wird alles automatisch wiederhergestellt und konfiguriert!
Um das Backup manuell einzuspielen, müssen die entpackten Dateien über FTP auf den Server geladen und der Datenbankdump über ein Datenbankverwaltungstool (z.B.: über phpMyAdmin) in die Datenbank importiert werden. Das ist schon alles!
Wird das Backup in eine andere Serverumgebung eingespielt, müssen natürlich noch die Daten der Datenbankverbindung und die Pfade in der configuration.php angepasst werden. Old School eben, wie bei normalen manuellen Backups auch! :-)
Tipp: Bei Nutzung der kostenlosen Version, kann die Zip Datei beim Einspielen des Backups mit dem Skript Kubik-Rubik Unzip Script in Sekunden auf dem Server entpackt werden. Bei der bezahlpflichtigen Version sollte das Wiederherstellungsskript Easy Joomla Backup Pro Restore verwendet werden!
Cronjob - Automatische Backups mit Hilfe von geplanten Aufgaben
CLI-Skript
Nach der Installation ist das CLI-Skript im Ordner cli der Joomla!-Instanz verfügbar. Mit dem Skript können Backups über die Kommandozeile direkt auf dem Server erstellt werden. Zum Beispiel können mit Hilfe von crontab Cronjobs erstellt werden, um den Backup-Prozess zu automatisieren.
Verwendung im Terminal auf dem Server:
php pfad/zu/joomla/root/cli/ejbCli.php x
Argument x kann sein: 1 - Komplettbackup, 2 - Datenbankbackup, 3 - Dateibackup. Standardwert ist 1, wenn kein Argument angegeben wird!
Beispiel für einen Crontab-Eintrag, um täglich um Mitternacht ein Komplettbackup zu erstellen. Das Cron-Dienstprogramm mit crontab -e
öffnen und den Code mit korrektem Pfad zur eigenen Joomla! Installation eingeben. Nicht vergessen, den Dienst nach dem Speichern der Datei neu zu starten:
0 0 * * * php pfad/zu/joomla/root/cli/ejbCli.php 1
System Plugin - Easy Joomla Backup Cronjob - EJB Cronjob
EJB Cronjob ist ein Hilfsplugin für die Komponente Easy Joomla Backup. Mit diesem Systemplugin können Backups komplett automatisch über Cronjobs oder einem individuellen Aufruf erstellt werden! Mit dem selbstdefinierten Token kann der Backupprozess direkt im Frontend mit den korrekten Queryparametern ohne vorherigem Login in den Administrationsbereich gestartet werden.
Wie nutzt man die Cronjob Funktionalität?
Es ist wirklich einfach! Die Cronjob Parameter müssen zur URL der Startseite (oder einer beliebigen Seite im Frontend) hinzugefügt werden, um den Backupprozess in Gang zu setzen. Es gibt 2 Parameter, einer davon muss gesetzt werden, der andere ist optional:
ejbtoken - das ist der Token, der in den Einstellungen des Plugins gesetzt werden muss. Nur mit der Eingabe des korrekten Tokens wird das Plugin ausgeführt. Dieser Parameter ist eine Pflichtangabe.
ejbtype - mit diesem Parameter wird der Backuptyp definiert: 1 - Komplettbackup, 2 - Datenbankbackup, 3 - Dateibackup. Wenn dieser Parameter nicht gesetzt wird, dann wird der Typ aus den Einstellungen benutzt.
Beispiel
In den Einstellungen wurde der Token 's3cR3T!T0K3n' gesetzt, dann sieht der korrekt Aufruf mit dem Typ 'Komplettbackup' folgendermaßen aus:
http://www.example.com?ejbtoken=s3cR3T!T0K3n&ejbtype=1
Ohne Typangabe: http://www.example.com?ejbtoken=s3cR3T!T0K3n
Die Beispieldomain wird mit der eigenen Domain ersetzt. Bitte ein sicheres Token nutzen, um unautorisierte Aufrufe zu vermeiden!
Info: Das Plugin erzeugt keine Ausgabe, nachdem es ausgeführt wurde. Das ist nicht notwendig bei einem Cronjobskript. Nach Beendigung wird eine Weiterleitung durchgeführt, um die Queryparameter zu entfernen. Wenn man die Funktionalität des Plugins testen möchte, dann kann man in der Komponente nachschauen, ob die Backupdatei in der Übersicht aufgelistet wird!
Achtung: Der Backupprozess wird unterbrochen, wenn der Cronjob die Seite nicht bis zum Prozessende lädt. Wenn der Cronjob nur so konfiguriert werden kann, dass er die URL einfach aufruft ohne auf einen gültigen HTTP Status-Code zu warten (hier nach erfolgreichem Backup 303 See other aufgrund der Umleitung auf die Startseite), dann kann man die Cronjob-URL als Lesezeichen abspeichern und diese Funktionalität trotzdem verwenden, um Backups manuell aus dem Frontend zu erstellen!
Changelog
Joomla! 3.x
Version 3.5.4-PRO - 2020-12-13
- + Dropbox - Automatic upload - Uploads the newly created backup archives automatically to Dropbox.
- + Dropbox - Automatic upload - Cron plugin & CLI script - Uploads the newly created backup archives automatically to Dropbox if the cron plugin or the CLI script is used (cli/ejbCli.php).
- ^ Code optimisations
Version 3.5.3-PRO - 2020-07-28
- + Database backups are generated in separate Ajax calls instead of one single request, just like the file system backup. This approach mitigates the risk of hitting server limits for big databases drastically!
Version 3.5.2-PRO - 2020-07-15
- + Optimised database backup process for huge tables (> 1 million entries) to mitigate resource consumption
- ^ Updated custom field
Version 3.5.1-PRO - 2020-05-05
- + Indicator of the backup progress in per cent in the tab/window title
- ^ Updated language strings
- ^ Code optimizations
Version 3.3.1-FREE - 2020-05-03
- + Maintenance update based on 3.5.0-PRO
- + Indicator of the backup progress in per cent in the tab/window title
- ^ Updated language strings
- ^ Code optimizations
Version 3.5.0-PRO - 2020-04-27
- First release with increased technical requirements: Increasing Technical Requirements - Joomla! Core & PHP for Pro & Free Extensions
- + Dropbox Upload - Associates Easy Joomla Backup Pro with a Dropbox account to allow the upload of backup archives with one click to Dropbox.
- ^ Code Optimizations
Version 3.3.0-FREE - 2020-01-03
- First release with increased technical requirements: Increasing Technical Requirements - Joomla! Core & PHP for Pro & Free Extensions
- + Dynamic Backup Process (Ajax Requests) - Backups are created using Ajax requests to avoid timeouts or memory limit fatal errors
- + Removed dependency on mysqli handler - Dumps with the mysql handler are created properly
- + Modern, optimized code
- ^ Enforce HTTP status code 200 for archive downloads
- ^ Improved download handling of large package sizes
- ^ Changed default value to "Yes" for option "DROP TABLES"
- # Name of SQL dump file (without .zip extension)
Version 3.4.4-PRO - 2019-09-19
- ^ Changed default value to "Yes" for option "DROP TABLES" - Better setting for the new restoration script Easy Joomla Backup Pro Restore
- # Name of SQL dump file (without .zip extension)
Version 3.4.3-PRO - 2019-08-17
- + Added ".secure" file name suffix to backup archives with password protection
- + Added password confirmation field with a dynamic check for equal entries
Version 3.2.6 - 2019-06-30
- + Added Custom Field - Pro Button
- ^ Updated Custom Fields
- ^ Updated Project Page URL
Version 3.4.2-PRO - 2019-03-16
- ^ Improved download handling of large package sizes - Thanks for reporting this issue to Blu Dove Designs
Version 3.4.1-PRO - 2019-03-07
- ^ Increased minimum Joomla! version to 3.9 - Replaced classes JFile / JFolder with File / Folder.
- ^ Enforce HTTP status code 200 for archive downloads
- ^ Updated project page in all files (from https://joomla-extensions.kubik-rubik.de to https://kubik-rubik.de)
- # Filter for root files was set too strict, files starting with a dot (.) have been filtered
Version 3.4.0-PRO - 2019-02-14
- + Encryption - Encrypt Backup Archives - The Advanced Encryption Standard (AES) is used to encrypt the archives. Technical requirements for the encryption functionality: PHP >= 7.2 and Libzip >= 1.2. Note: The encryption process increases the backup time!
- + Encryption Algorithm Key Size - Sets the encryption algorithm key size. According to NIST (U.S. National Institute of Standards and Technology), the 128-bit key size is perfectly adequate for secure encryption. Though, you may increase the key to 192-bit or even 256-bit.
Version 3.3.0-PRO - 2019-01-28
- + First Pro release based on EJB version 3.2.5
- + Dynamic Backup Process (Ajax Requests) - Backups are created using Ajax requests to avoid timeouts or memory limit fatal errors
- + Option: Maximum Execution Time - Maximum execution time in seconds per batch process. The value should be adjusted if the backup process runs into a timeout. Default value is 30 seconds. The value 0 means that the script uses the half of the maximum execution time provided by the server. If you set a custom value, then the system value is overwritten. If you encounter an error, then decrease the selected value step-by-step to find the best setting. Actual execution time is entered value in seconds + processing time of currently archived folder!
- + Option: Initial Execution Level - How many levels should be used for the initial scanning preparation values. This option helps you to avoid timeouts if you have a nested and deep file system structure. If you are still running into timeouts, then you should increase the number. To improve performance you can reduce the number!
- + Removed dependency on mysqli handler - Dumps with the mysql handler are created properly
Version 3.2.5 - 2017-10-09
- + Option: Add Random String To Name (Suffix) - With this option a random, 10 characters long string is added to the archive name to abolish the fixed name pattern.
- ^ Custom Field
- ^ Small Code Optimizations
Download
Übersicht über alle Downloads zu dieser Erweiterung: EJB - Easy Joomla Backup Downloads