A friend of mine is using osTicket for his small support team and was wondering how he could backup osTicket. I did some online search and expected to find thousands of threads and hundreds of scripts.
Lot’s of people suggested to use mysqldump and backup your webserver but I couldn’t find a quick an easy script, which would help my friend.
I create a basic bash script which you can add to a cronjob to make sure it will regularly backup your system.
The following of the script needs to be modified with your settings:
###################################### ###########Configure variables######## ###################################### #Specify mysqlserver server dns name or IP mysqlserver='DB_SERVER' #Specify username for database mysqluser='DB_USER' #Specify password for database mysqlpasswd='DB_PASSWD' #Specify database name mysqldb='OSTICKET_DB' #Specify email address for email notifications email='[email protected]' #Used to, temporary, store the mysqldump & osTicket config file tmpdir='/backup/tmp' #Specify where the local backup copy will be stored backupdir='/backup/' #Specify name of the mysqldump dbfile="DB-backup-$date.dump" #Specify path to osTicket config file config='/srv/www/htdocs/include/ost-config.php' #Specify name and location of backup file backupfile="/backup/backup-$date.tar" #Specify number of local backup copies to keep local_copy='28' #Specify number of remote backup copies to keep remote_copy='56' #Specify your remote server (needs SSH enabled) remote_server='MY_REMOTE_SERVER' #Specify username for remote server remote_user='MY_REMOTE_USER'
The backup.log is very easy to ready and a successful backup will look like this:
########################################### ############Backup started################# ########################################### 2015-03-04_12:00:02: Start DB Backup 2015-03-04_12:00:02: Finished DB backup 2015-03-04_12:00:02: Start config backup 2015-03-04_12:00:02: Finished config backup 2015-03-04_12:00:02: List of /backup/tmp conent: DB-backup-2015-03-04_12-00-02.dump, ost-config.php 2015-03-04_12:00:02: Start tar all backup files 2015-03-04_12:00:02: Finished tar all backup files 2015-03-04_12:00:02: Start cleaning all files in tmpdir, list of files, shown below: DB-backup-2015-03-04_12-00-02.dump, ost-config.php 2015-03-04_12:00:02: Finished clean-up of all files in tmpdir 2015-03-04_12:00:02: List of files which have not been delete 2015-03-04_12:00:02: Start copy of /backup/backup-2015-03-04_12-00-02.tar to remote location 2015-03-04_12:00:02: Finished copy to remote location 2015-03-04_12:00:02: Changed directory to /backup/ 2015-03-04_12:00:02: Start to delete old local backups - keep only 28 2015-03-04_12:00:02: Finished cleanup of local backups 2015-03-04_12:00:03: Start to delete old remote backups - keep only 56 2015-03-04_12:00:03: Finished cleanup of remote backups ########################################### ############Backup was successful########## ###########################################
How to restore from my backups?
- Untar backup file
- tar -zxvf backup_file.tar
- Restore your DB_file.dump
- mysql -u root -p[root_password] database_name < DB_file.dump
- Restore your ost-config.php
- cp ost-config.php /srv/www/htdocs/include/ (or to wherever osTicket is installed)
Refresh your browser and you should be able to see all your restored data.
If you have any feature requests or bugs, please do not hesitate yo reach out to me. My contact details are in the script header.