Black Friday / Cyber Week - Get 6 extra months for free on the Pro subscription - Announcement / Pro Subscription

Easy Joomla Backup - Joomla! Component - Logo


Name: Easy Joomla Backup - Version: 3.3.1-FREE / 3.5.3-PRO - Type: Component, System Plugin and CLI Script - License: GPLv3
Description: EJB creates quickly and easily backups in Joomla!

Overview of all downloads of the extension: EJB - Easy Joomla Backup Downloads

If you use EJB - Easy Joomla Backup, please post a rating and a review at the Joomla! Extensions Directory.

Create backups with Easy Joomla Backup - Files and database dump as a ZIP archive

Component: EJB - Easy Joomla Backup
Function: Creates backups of Joomla! websites - Full, Database and File Backup
Languages: English and German

Easy Joomla Backup creates complete backups without any frills. All files and a full database dump are stored in one backup zip archive. With this archive, you have all the essential data with which you can restore the website completely combined in one package. The backups are stored in a special folder which is not callable from the outside and can be managed easily using the component.

The component is intentionally kept simple, so as not to distract from the essentials: backing up the Joomla! website! In the overview, you can find a complete list of all backups with a download option of the respective backup. The following action button can be found in the top bar: Full Backup, Database Backup, File Backup, Discover, Delete and Options (see tab Installation for more information).

The zip process is fast and resource optimized. The script tries to increase all relevant settings to prevent timeouts on big sites. If the hosting company does not provide enough resources or restrict the execution of long processes, then you will probably encounter some problems to create backup files on big sites. In that case, you should exclude files or folders which you don't need to back up every time (e.g. images folder) or extend the resources with the help of your hosting company.

The component is based on my standalone script Kubik-Rubik Joomla! Backup Script, for which a good article with basic tips exists (in German only): Backups in Joomla! erstellen

Every administrator should regularly create backups to have the possibility to restore the working state in case of problems. Before any significant changes (install updates or new extensions) the creation of a backup is absolutely essential!


  • Create quickly and easily backups in Joomla!
  • Dynamic, Ajax-powered backup process
  • Automatic restoration - Easy Joomla Backup Pro Restore script (PRO)
  • Dropbox Upload - Uploads archives with one click into Dropbox (PRO)
  • Manual restoration - files via FTP, database dump via a database tool, e.g. phpMyAdmin
  • The extension creates Backups of all files and the database
  • Three different backup types: Full, Database and File Backup
  • All files and a database dump are packed into one ZIP archive
  • Extended ACL settings: Configure, Access Administration Interface, Delete, Download, Full Backup, Database Backup, File Backup, Discover
  • Indicator of the backup progress in per cent in the tab/window title
  • Exclude files from the backup archive
  • Exclude folders from the backup archive
  • Add 'DROP TABLE' order to the dump file
  • Add additional tables from the database
  • System Plugin: EJB Cronjob


Install the extension in the backend under Extensions and configure it in Components - Easy Joomla Backup.

You can control the component using the buttons at upper right. All existing backups are listed in the main content area. The list can be searched to find a specific backup. The backup files can be downloaded in the last column of the corresponding backup entry. The download process can be executed via FTP or directly with a click on the archive name in the last column. The download option is only activated for user levels which have the needed rights to download the backup archives.

Explanation of each buttons:

  • Full Backup - creates a backup of all files and the database.
  • Database Backup - creates a backup of the database.
  • File Backup - creates a backup of all files.
  • Discover - synchronizes the entries of the backups from the database with existing files. If the files are missing, the entries are removed. If entries are missing but files exist, then new entries are created automatically.
  • Delete - deletes all selected entries and the corresponding backup files.
  • Options - opens the settings of the component (see below).

Following options can be adjusted in the settings:

  • Exclude files from backup archive - excludes single files from the backup archive. The complete path to the file starting from the root folder has to be specified for unique identification.
  • Exclude folders from backup archive - excludes folders from the backup archive. The complete path to the folder starting from the root folder has to be specified for unique identification.
  • Add 'DROP TABLE' instruction to dump file - adds the DROP TABLE order to the database dump. So the dump file can be imported directly into the same database without having to remove all tables first.
  • Add additional tables - adds additional tables to the dump which do not have the same prefix as the Joomla! tables (e.g. a Piwik installation on the same database).

Enter only one entry per line in all the text fields in the settings!

Each action can be accurately controlled through the internal ACL. In the settings you may define for every user group which actions can be performed. So you can allow downloads only for Super Users, but the creation of the backups also for Administrators.

You may occasionally encounter problems on very large sites due to limitations of the server. In such cases, you can solve problems by excluding folders or increase the limits by the hoster. I could backup a test site with over 4GB in my local test environment without incidents.

If you restore the archive directly on the server via SSH in your terminal using unzip, then you should check the permission rights of the files and folders after the unzipping process was executed. If required, you should run the following commands to correct them:

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

How to create a backup?

Select a backup type on the overview page and click on the corresponding action button. On the following page, you can enter an individual comment for the backup, a further click on Create Backup starts the backup process. Depending on the size of the site, the process can take several minutes to complete. During this time, you should not click around on the page or close the window completely. After completion, you will be automatically redirected back to the overview page.

How to restore from the backup archive?

It is easy to restore the state of the website from the backup archive. You can restore the backup created by Easy Joomla Backup Pro with one click directly on the server using the standalone script Easy Joomla Backup Pro Restore! Upload the full backup archive and the script to your server and call the script in your browser. Once clicked on the restore button, everything will be restored and configured automatically!

If you want to restore the backup manually, then you have to upload the files to your server and import the SQL dump into your database (e.g. with the help of phpMyAdmin).

If you recover the website on a different server environment, then you, of course, have to enter the new database connection data and the new paths in the configuration.php. As I said, just 'old-school', as also with usual manual backups! :-)

If you are using the free version of Easy Joomla Backup, then you may use the script Kubik-Rubik Unzip Script to extract zip files within seconds while restoring the website with the backup archive. For the paid version you should use the restoration script Easy Joomla Backup Pro Restore!

Cronjob - System Plugin

Easy Joomla Backup Cronjob - EJB Cronjob

EJB Cronjob is a helper plugin for the component Easy Joomla Backup. With this system plugin, you may create backups completely automatically with cronjobs or a custom call! With the self-defined token, you can start the backup process directly from the frontend with the correct query parameters without having to login into the administration area.

How to use the cronjob functionality?

It is really easy! You have to add the cronjob parameters to the URL of the front page (or any other page in the frontend) to activate the backup process. You can use two parameters; one of them is mandatory, the other optional:

ejbtoken - this is the token which you have to set in the settings of the plugin. Only with the correct token, you may execute the plugin. This parameter is mandatory.

ejbtype - with this parameter, you may define the backup type: 1 - full backup, 2 - database backup, 3 - file backup. If you do not use this parameter, then the plugin will use the type from the settings.


In the settings the token is set to 's3cR3T!T0K3n', then a correct call could be with the type 'Full Backup':!T0K3n&ejbtype=1

Without the type:!T0K3n

Replace in both examples the example domain with your domain. Please use a secure token to avoid unauthorized calls!

Note: The plugin doesn't produce messages after it has been executed; this is not necessary for a cronjob script. The only thing is a redirection to remove the query parameters. If you want to test the functionality of this plugin, then go to the component and check whether the backup file is listed in the overview!

Attention: The backup process will get interrupted if the cronjob does not call the page until the end of the process. If you can not configure the cronjob to call the page until it is loaded completely - the server sends a valid HTTP status code as a response (here it is 303 See other due to the redirection to the front page), then you can bookmark the cronjob URL and still use this functionality to create backups manually from the frontend!


+ = Added - ! = Removed - ^ = Changed - # = Fixed

Joomla! 3.x

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 optimisations

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 optimisations

Version 3.5.0-PRO - 2020-04-27

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 to
  • # 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

Version 3.2.4 - 2016-08-31

  • ^ Improved logic check in the backup process to avoid a PHP Warning notice if open_basedir restriction is used - Thanks to Natalie F. for reporting it!
  • ^ Updated Language Files

Version 3.2.3 - 2016-06-03

  • + Function setExternalAttributesName check - Added check whether required function to set the permission rights on UNIX systems is available - since PHP 5 >= 5.6.0, PHP 7, PECL zip >= 1.12.4 - Thanks to Marion M. for reporting this issue!

Version 3.2.2 - 2016-06-03

  • # Permission rights on Unix systems - All file and folder permission rights are set properly on Unix systems - Thanks to Mario I. for reporting this issue and Remi C. for providing a solution for the fix!
  • ^ Code style
  • ^ Updated custom field

Version 3.2.1 - 2015-11-03

  • ^ SQL dump process - Improved the handling of numeric values that do not have the data type integer - Thanks to Marion for reporting this issue!
  • ^ Code style

Version 3.2.0 - 2015-07-31

  • + Donation Code Validation Process - Improved the validation process with a new server (HTTPS request) plus an independent, separated fallback server (HTTP request).
  • + New Download Server - Download packages are located independently of the project website on a new download server.

    Version 3.1.0 - 2015-05-17

    • + CLI script - After the installation the CLI script is available in the cli folder of the Joomla! instance. Use the script to create backups through your terminal directly on the server. With the help of crontab you can create cron jobs to automate the backup process.
      Usage in the terminal on the sever:
      php path/to/joomla/root/cli/ejb_cli.php x
      Argument x can be: 1 - Full Backup, 2 - Database Backup, 3 - File Backup. Default is 1 if no argument is provided!
      Crontab entry to create full backups daily at midnight (Open with 'crontab -e', do not forget to restart this service after you've saved the file):
      0 0 * * * php path/to/joomla/root/cli/ejb_cli.php 1
    • + Option: Prefix for archive names - With this option the prefix can be set manually to identify the archive files. This is especially useful for the CLI process!
    • ^ Semantic versioning - Switched to semantic versioning, see for more details. Please update manually since the core update server functionality will not recognize the new version!

    Version 3-5 - 2015-03-23

    • + Status notification for the EJB Cronjob plugin - Notification with link in the footer of the main view
    • + Improved Create view - Uses full width & better positioning of the loading animation
    • + Update Server - Added the Joomla! core functionality for the update checks
    • ^ Updated Donation Code field - Uses the HTTP API for the requests and calls the check script via HTTPS
    • ^ Links in the language files - Updated outdated links to the JED (Joomla! Extensions Directory)
    • ! Removed deprecated "JError" usage - Uses PHP Exceptions instead
    • ! Removed Version Check field
    • # Search button - Cancel - getElementById (change needed in Joomla! 3.4.0 and higher)
    • # Package name creation - Correct package names for websites that use HTTPS

    Version 3-4 - 2014-06-27

    • + Joomla! 3.0.x / 3.1.x compatibility - added compatibility for outdated core versions on popular request

    Version 3-3 - 2014-05-09

    • + New option: Maximum number of backup files - Outdated files are removed automatically after the backup process was executed

    Version 3-2 - 2014-02-08

    • ^ Improved the handling of NULL values
    • ^ Improved the handling of "\0" (ASCII 0 (0x00)), NUL-byte characters
    • ^ Improved output - added icons
    • ^ Updated custom fields

    Version 3-1 - 2013-09-10

    • + First release for Joomla! 3 - based on version 2.5-2 with important modifications and optimizations for Joomla! 3.x
    • + This release is tested only with Joomla! 3.1.5 - do not use it in a lower Joomla! version. Do not report any problems with other Joomla! versions. Only the mentioned version is supported officially by EJB!

    Joomla! 2.5

    Version 2.5-4 - 2014-05-19

    • + New option: Maximum number of backup files - Outdated files are removed automatically after the backup process was executed
    • + Added database type check

    Version 2.5-3 - 2014-02-07

    • + Automatic comment from the Cronjob Plugin - if the backup process was executed by the cronjob plugin, then it is specified in the comment field
    • ^ Improved the handling of NULL values
    • ^ Improved the handling of "\0" (ASCII 0 (0x00)), NUL-byte characters
    • ^ Updated custom fields

    Version 2.5-2 - 2013-07-03

    • + New Feature: Cronjob - with the new system plugin EJB Cronjob the backup process can be executed directly in the frontend. Use this feature to create recurring cronjob calls. This great feature will save you time and nerves. Configure the cronjob task, lean back and relax, EJB Cronjob will do the job for you! :-)
    • ^ Drop table - added IF EXISTS to the drop table order to avoid errors while importing the sql file in a different database
    • ^ Updated custom fields

    Version 2.5-1 - 2013-05-18

    First stable release with minor changes to the RC2 version

    Version 2.5-1 RC2 - 2013-03-26

    + Feature: Add additional tables - with this feature additional tables which do not have the Joomla! prefix can be added to the database dump
    # Wrong status notice after a download

    Version 2.5-1 RC - 2013-03-19

    + First public release of the component


    Overview of all downloads of the extension: EJB - Easy Joomla Backup Downloads