The following scripts are supplied to illustrate how it is possible to automate the backup of CatDV preferences and a MySQL database. They are free to use and modify but are provided for use at your own risk. Please consult a systems administrator if you are in any doubt about your backup and recovery strategy.
This tutorial is focused on OSX environments only.
As with any backup strategy there is no substitute for regular testing that backups are stored and can be recovered correctly. Disaster recovery tests are strongly recommended.
Knowledge of scripting will be needed to adapt these scripts to suit a specific environment or business needs.
Each script creates a folder on the Desktop called CatDVBackups with the sub-folders:
serverprefs clientprefs workerprefs database
It then copies and date stamps the files into the corresponding subfolder.
There are comments in each script to help indicate what each section does and suggestions on where modifications can be made.ย It is possible ย to automate these scripts to run to a schedule using task scheduling features within OSX, below are links indicating how to do this:
Launchd in Macintosh environments is describedย here
Macintosh shell script
Copy and paste the text of the script section at the bottom of this page into a text file and save it as catdv_backup.sh on the Desktop
or download the file here and rename the extension to .sh ย CatDV_backup.txt
Open terminal and the type
cd Desktop
chmod +x catdv_backup.sh
this makes the file executable
to run ย type
./catdv_backup.sh
in the terminal and hit enter
If the ย file name is changed to catdv_backup.command ย the command can be ย run in future by ย double clicking the file – please ย note ย it must be ย run once ย as a .sh ย before this ย will work
for automation it should be left as a .sh extension ย but a copy can be made and set to the .command extension for manual use.
#!/bin/sh # shell script to back up key CatDV preferences files # -- Set the window title -- # title='shell script to back up key CatDV preferences files' # echo "33]0;$title07" # -- Set the paths and folder names -- # to change the name of the backup folder Type the name below in place of CatdvBackups # (no more than 30 characters alphanumeric with no white space) # (this will be automatically substituted throughout the rest of the script) Bfolder='CatDV_Backups' # to modify the location of your backup folder change the path by replacing # the string %HOMEPATH%Desktop with the preferred path # (this will be automatically substituted throughout the rest of the script) Bpath='Desktop' # set the path to your mysql installation MYSQLpath=/usr/local/mysql/bin/ #set the user name for the logged on user $USERNAME=alastair # echo the output folder echo $HOME echo $Bpath echo $Bfolder echo $Bpath/$Bfolder # Create Directories at backup target # Change folder to Backup path cd $HOME cd $Bpath pwd # Make a folder named by the variable $Bfolder mkdir $Bfolder # Change folder to $Bfolder and then make sub folders cd $Bfolder mkdir serverprefs mkdir clientprefs mkdir workerprefs mkdir Database # Copy the files and date + timestamp the backups -- cp /usr/local/catdvServer/catdv.properties /CatDV_Backups/serverprefs/catdv`date +%Y-%m-%d-%H.%M`.properties cp $HOME/Library/Application Support/worker.xml /$HOME/Desktop/CatDV_Backups/workerprefs/worker`date +%Y-%m-%d-%H.%M`.xml cp /Users/$USERNAME/Library/Application Support/workset.xml /$HOME/Desktop/CatDV_Backups/workerprefs/workset`date +%Y-%m-%d-%H.%M`.xml cp /Users/$USERNAME/Library/Preferences/CatDV Preferences /$HOME/Desktop/CatDV_Backups/clientprefs/CatDV`date +%Y-%m-%d-%H.%M` Preferences # Backup the mysql database and date + timestamp the backups -- /usr/local/mysql/bin/mysqldump -u catdvadmin -pcatdv catdv > /$HOME/Desktop/CatDV_Backups/Database/backup-`date +%Y-%m-%d`.sql