The script works flawlessly when run manually, but never when sitting in a cronjob:
Code: Select all
0 3 * * * $HOME/bin/wordpress.sql.backup.sh
Code: Select all
#!/bin/sh
#### some variables
date=`date +%Y%m%d`
localUser="john"
localDirectory="/home/john/backups/sql"
localFile="wordpress_backup"
key="$HOME/.ssh/tomac_rsa"
remoteHost="mydomain.com"
remotePort="XXXXX"
remoteUser="john"
remoteDirectory="/Users/john/Documents/backup"
db="wordpress"
dbUser="root"
dbPass="****************************************"
### usual stuff about 'if this doesn't exist, create it'
if [ ! $localDirectory ]; then
/bin/mkdir $localDirectory
fi
### do the dump
/usr/bin/mysqldump -u $dbUser -p$dbPass $db > $localDirectory/$localFile.$date.sql
### put the file on Mac
/usr/bin/scp -P $remotePort -i $key $localDirectory/$localFile.$date.sql $remoteUser@$remoteHost:$remoteDirectory
### remove anything older than 90 days
/bin/find $localDirectory -mtime +90 | /usr/bin/xargs /bin/rm -rf > /dev/null 2&>1
exit 0
Thanks.