17.5 Automation
Below is an example of a script to synchronize PEcAn database instances across the network.
db.sync.sh
#!/bin/bash
## make sure psql is in PATH
export PATH=/usr/pgsql-9.3/bin/:$PATH
## move to export directory
cd /fs/data3/sync
## Dump Data
MYSITE=1 /home/dietze/pecan/scripts/dump.bety.sh
## Load Data from other sites
MYSITE=1 REMOTESITE=2 /home/dietze/pecan/scripts/load.bety.sh
MYSITE=1 REMOTESITE=5 /home/dietze/pecan/scripts/load.bety.sh
MYSITE=1 REMOTESITE=0 /home/dietze/pecan/scripts/load.bety.sh
## Timestamp sync log
echo $(date +%c) >> /home/dietze/db.sync.log
Typically such a script is set up to run as a cron job. Make sure to schedule this job (crontab -e
) as the user that has database privileges (typically postgres). The example below is a cron table that runs the sync every hour at 12 min after the hour.
MAILTO=user@yourUniversity.edu
12 * * * * /home/dietze/db.sync.sh