Name: Easy Joomla Backup - Version: 3.4.1.0-FREE / 3.6.3.2-PRO / 4.0.4.3-PRO - Typ: Komponente, Systemplugin und CLI Skript - Lizenz: GPLv3
Beschreibung: EJB erstellt schnell und einfach Backups in Joomla! - Joomla! Extensions Directory
Übersicht über alle Downloads zu dieser Erweiterung: EJB - Easy Joomla Backup Downloads
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! 4.x
Version 4.0.4.3-PRO - 2022-12-09
- + Added logging for exceptions using Joomla!'s core log system.
- # Optimised database structure validity executed in the update routine.
Version 4.0.4.2-PRO - 2022-11-09
- # An empty line in exclude folder option excluded all folders. Thanks to HorstG for reporting it!
Version 4.0.4.1-PRO - 2022-09-01
- # Updated the CLI command files to bypass a bug introduced in Joomla! 4.2.1. Thanks to Thomas (thosch) for reporting it!
Don't forget that you can use the --json option to receive a JSON response from the backup call (php cli/joomla.php backup:full --json
)
Example output:{"date":"2022-09-01 08:07:15","dateLocal":"2022-09-01 10:07:15","comment":"Backup file was created by a CLI command","name":"cli_2022-09-01_10-07-15_ckYVXVZqWYoPxLSV.zip","type":"fullbackup","duration":7.39,"size":27727416,"status":true}
Version 4.0.4.0-PRO - 2022-08-30
- + Added Pro Security Token validation check. The Pro package contains a token file with an individual security token linked to the user account and checked against the validation server for authenticity.
- ^ Multiple internal code optimisations.
- # Added an icon to component dashboard view. Thanks to Dirk (Wilderer) for reporting it!
Version 4.0.3.2-PRO - 2022-05-18
- + Added inline help toggle button to display inline descriptions to bypass a bug in Joomla! 4.1.3.
- ^ Changed field types from text to integer with dropdown list for the options "Initial execution level" and "Maximum amount of files per iteration".
- ^ Optimised default values for the options "Initial execution level" (6) and "Maximum amount of files per iteration" (1000).
- ^ Optimised the exclusion logic to improve the performance.
- # Fixed termination condition in a recusive function called via Ajax. Thanks to Michael K. for reporting it!
Version 4.0.3.1-PRO - 2022-02-17
- ^ Updated search tools output of the backend component due to the path change to the CSS file in Joomla! 4.1
- ^ Code optimisations
Version 4.0.3.0-PRO - 2022-01-10
- + Added Maximum amount of files per iteration option - Maximum amount of files per batch process to avoid timeouts in folders with a large number of files. Default: 500
- ^ Improved exception handling in the backup process with detailed error message output
- ^ Code optimisations
Version 4.0.2.0-PRO - 2021-11-17
- + Added the built-in Download Key Manager support to enter your Pro Update ID without installing the update helper plugin.
Important: Please copy your personal Pro Update ID using the second copy button in the Pro ID Manager and enter the key in System - Update - Update Sites - Select the entry of the Pro extension and enter the ID into the Download Key field. - ^ Code optimisations
Version 4.0.1.1-PRO - 2021-10-27
- + Added dateLocal field with the timezone of the server to the JSON output option. Thanks to Thomas Sch. for requesting it!
- ^ Updated session handler check. Thanks to Thomas Sch. for reporting it!
Version 4.0.1.0-PRO - 2021-10-26
- + Added --json and --raw options to the CLI commands. Thanks to Thomas Sch. for requesting this feature!
Usage via the command line:php cli/joomla.php COMMAND --json
andphp cli/joomla.php COMMAND --raw
--json will return a JSON with all relevant data that is also used in the notification mail, --raw will return 0 or 1 on the command line
Version 4.0.0.1-PRO - 2021-09-26
- # Upper and lower case of classes on Linux servers. Thanks to Werbeagentur Müller for reporting it!
Version 4.0.0.0-PRO - 2021-09-16
- + First Pro release for Joomla! 4.x based on EJB Pro version 3.6.1.0-PRO
- + Added system plugin for CLI commands:
backup:full
,backup:database
andbackup:file
Usage via the command line:php cli/joomla.php COMMAND
- Replace COMMAND with one of the commands above! - ! Removed CLI standalone script
Joomla! 3.x
Version 3.6.3.2-PRO - 2022-12-10
- + Added logging for exceptions using Joomla!'s core log system.
- # Fixed rare possible response error "Undefined array key 0" if error reporting is enabled. Thanks to eumel1602 for reporting it!
Version 3.6.3.1-PRO - 2022-05-18
- ^ Changed field types from text to integer with dropdown list for the options "Initial execution level" and "Maximum amount of files per iteration".
- ^ Optimised default values for the options "Initial execution level" (6) and "Maximum amount of files per iteration" (1000).
- ^ Optimised the exclusion logic to improve the performance.
- # Fixed termination condition in a recusive function called via Ajax. Thanks to Michael K. for reporting it!
Version 3.6.3.0-PRO - 2022-01-08
- + Added Maximum amount of files per iteration option - Maximum amount of files per batch process to avoid timeouts in folders with a large number of files. Default: 500
- ^ Improved exception handling in the backup process with detailed error message output
- ^ Code optimisations
Version 3.6.2.0-PRO - 2021-10-28
- + Added --json option to the CLI command. Thanks to Thomas Sch. for requesting this feature!
Usage via the command line:php cli/ejbCli.php TYPE --json
--json will return a JSON with all relevant data that is also used in the notification mail.
Important: You need to provide the backup type ([1|2|3]
) if you want to use the --json option!
Version 3.4.1.0-FREE - 2021-09-09
- ^ Optimised post process handling for CONSTRAINT rules in the database backup process. Thanks to Marion M. for reporting it!
Version 3.6.1.0-PRO - 2021-09-09
- ^ Optimised post process handling for CONSTRAINT rules in the database backup process. Thanks to Marion M. for reporting it!
Version 3.4.0.0-FREE - 2021-08-02
- + Maintenance update based on 3.6.0.2-PRO
- + 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!
- + Optimised database backup process for huge tables (> 1 million entries) to mitigate resource consumption
- ^ Changed the version number specification. The first number stands for the supported major Joomla! version. The following three numbers follow the Semantic Versioning Specification (SemVer), as it used to be previously.
- ^ Updated custom fields
- ^ Updated language strings
- ^ Code optimisations
- # Fixed time offset of discovered backup entries
Version 3.6.0.2-PRO - 2021-07-29
- + Mail only if errors occur option - Sends the notification mail only if an error occurs. Thanks to Rico for requesting this feature!
Version 3.6.0.1-PRO - 2021-06-29
- + Mail after backup - Cron plugin & CLI script option - This feature sends a notification email with all details after the backup process if the cron plugin or the CLI script is used (cli/ejbCli.php).
- ^ Updated custom field
Version 3.6.0.0-PRO - 2021-05-21
- + Backup storage location option - With this option, you may define a custom storage location for the backup archives. For instance, you can specify a folder outside the webroot to block access via a browser. Use ../ to specify a folder outside the webroot. Example: ../backups
Note: PHP cannot always write data outside the webroot in strict server environments (open_basedir restriction). If you run into this problem, then please specify a folder within the webroot directory! - + Added "Backup storage location is writable" check to the list of requirement checks
- ^ Changed the version number specification. The first number stands for the supported major Joomla! version. The following three numbers follow the Semantic Versioning Specification (SemVer), as it used to be previously.
- ^ Updated custom field
- ^ Updated language strings
- ^ Code optimisations
- # Fixed time offset of discovered backup entries
Download
Übersicht über alle Downloads zu dieser Erweiterung: EJB - Easy Joomla Backup Downloads