Backup and Restore¶
Zammad contains simple backup & restore scripts that can be executed via command line or cron job.
You can find the scripts in the
You’ll need to rename the config file for the backup before you can use this script!
- Configure backup path in
/opt/zammad/contrib/backup/configif you want. The default backup path is
/var/tmp/zammad_backup(needs to be created!)
- If needed, you can also adjust the variable
HOLD_DAYSto any value you need. Default value here is 10 backups before the oldest backup is deleted.
Please note that the Backup script always creates a Full-Dump of
/opt/zammad and a Full-Dump of your database. If your Zammad installation
is rather big, you might need to ensure you have enough space.
Creating a Backup is done very easy, you can just call the following to backup your Zammad-Instance. You can also run this as a cronjob to have a regular backup.
cd /opt/zammad/contrib/backup ./zammad_backup.sh
Please note that you should run the cronjob as User
zammad (ensure this user can write to the backup-directory). If you’re using the root user, you might want to consider the following issue.
If you plan on migrating your Zammad-Installation to another system, ensure to stop Zammad before creating a Backup. Other wise, data might change!
You can do this with:
systemctl disable zammad && systemctl stop zammad
Migrating from another Zammad-Host¶
Migration between different Zammad installations is very easy. Before you migrate, please ensure the following requirenments are met:
- The Zammad-Version on the destination system has to be the same or newer
- You can’t mix database types (postgresql or MySQL), as this needs conversion of your dump (which the script does not perform) * We can offer you Dump-Migrations from MySQL to postgresql and postgresql to MySQL if need to change the databae for whatever reason, as a commercial service.
- Ensure you have enough free space on your drive (at least double as the size of your Dump!)
If above requirenments are met, you can continue with restoring.
Change into the folder of Zammads backup-script.
With command line argument for backup date¶
Only use the following option if you know what you’re doing! The following command will overwrite existing data without further prompts!
If you already know what backup you want to restore, you can just give the backup script the timestamp (from the filename) as argument, it will go straight to restoration.
What to do after restoration has been completed¶
When migrated from a self hosted Zammad system¶
This step is only needed, if one of the following points is met:
- The source and destination Zammad-Version are not the same
- The Zammad-installation is not a source code installation
- The Zammad-Backup is not an Export from Hosted-Setup
If no points affect you, just continue with blah
If your versions differ, it might happen, that your Zammad-Service will not start cleanly. You can update your installation
If you receive the following, you can workaround your problem with reinstalling Zammad (example on Debian, other Operating systems might differ)
root@zammad:/# apt-get update && apt install zammad Reading package lists... Done Building dependency tree Reading state information... Done zammad is already the newest version (x.x.x-xxxxxx.xxxxxx.stretch). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
The following will uninstall and install Zammad without resolving dependencies:
dpkg -r --force-depends zammad apt install zammad
zypper remove -R zammad zypper install zammad
Things you need to do after migration on every system¶
This does not apply to Docker images, as the following settings should be applied upon every start.
For Zammad-Versions 2.9 and earlier, please run a change owner on your Zammad folder.
Default-Installations should be fine with
chown -R zammad:zammad /opt/zammad/ (Source code installations might differ).
Please restart Zammad after the change-owner command
systemctl restart zammad.
Before you can use Zammad and all it’s features, you’ll need to ensure your Searchindex is up and running. If you didn’t install elasticsearch yet, now’s a good time. If you already did, ensure to configure the ES-URL (if migrated) and also run a reindex.
You can find further information on how to do that on the following page: Set up Elasticsearch.