在Rackspace Cloud上使用AutoMySQLBackup

由于Rackspace Cloud只允许FTP访问,因此使用AutoMySQLBackup有点棘手,而且至less在创build数据库转储时,我会在备份日志中看到错误:

###### WARNING ###### Errors reported during AutoMySQLBackup execution.. Backup failed Error log below.. .../backups/automysqlbackup: line 1791: /usr/bin/find: Permission denied .../backups/automysqlbackup: line 1855: /usr/bin/find: Permission denied .../backups/automysqlbackup: line 803: /usr/bin/find: Permission denied .../backups/automysqlbackup: line 1972: /usr/bin/du: Permission denied 

由于正在创build文件,我假设查找命令失败,实际上是旋出和删除旧的备份?

803行:

 find "${CONFIG_backup_dir}/${subfolder}${subsubfolder}" -mtime +"${rotation}" -type f -exec rm {} \; 

任何想法的替代品?

正如其他地方所指出的,Rackspace Cloud不允许访问find命令。 也许是某种安全问题? 在任何情况下,我最终build立在别人的bash脚本上,每日/每周/每月的备份版本没有find命令:

 #!/bin/bash #################################### # # Purpose: Create daily, weekly and monthly rotating backups # (Originally for WordPress web content and MySQL DB # on Rackspace Cloud Sites) # ##################################### ##### SETTINGS ##### BACKUP_NAME="SOMEWEBSITE Web & DB Backup" # What is the name of this backup? BACKUP_SITEROOT="" # Root directory of website BACKUP_TARGET=$BACKUP_SITEROOT"/backups" # Where to store the backups BACKUP_FILES=$BACKUP_SITEROOT"/web/content" # What directories to backup # Database info DB_USER="" DB_PASS="" DB_HOST="" DB_NAME="" # How many weekly backups and monthly backups to save WEEKS_TO_SAVE=4 # default: 4 MONTHS_TO_SAVE=6 # default: 6 # Which day of the week and month to version backups on BACKUP_DAYOFWEEK="Saturday" # default: "Saturday" BACKUP_DAYOFMONTH=1 # default: 1 # Archive file names ARCHIVE_DB="db_backup_"`date +%Y-%m-%d` ARCHIVE_WEB="web_backup_"`date +%Y-%m-%d`.tar.bz2 /bin/echo "======================================================================" /bin/echo "Starting Backup Task:" $BACKUP_NAME /bin/echo "======================================================================" # CREATE DAILY BACKUP /bin/echo "Creating daily backup archives..." # Check to make sure the folders exist, if not create them. /bin/mkdir -p $BACKUP_TARGET/daily.{0..6} # Delete the oldest backup folder. /bin/rm -rf $BACKUP_TARGET/daily.7 # Shift all the backup folders up a day. for i in $(eval echo {7..1}) do /bin/mv $BACKUP_TARGET/daily.$[${i}-1] $BACKUP_TARGET/daily.${i} done # Create tar'ed and bzip2 archive of web content tar cfj $BACKUP_TARGET/daily.1/$ARCHIVE_WEB $BACKUP_FILES # Dump MySQL DB and create bzip2 archive mysqldump --opt -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_TARGET/daily.1/$ARCHIVE_DB.sql bzip2 $BACKUP_TARGET/daily.1/$ARCHIVE_DB.sql # CREATE WEEKLY BACKUP DAYOFWEEK=$(date +%A) if [ $DAYOFWEEK == $BACKUP_DAYOFWEEK ] then /bin/echo "It's" $DAYOFWEEK"! Copying latest Daily backups to Weekly..." # Check to make sure the folders exist, if not create them. eval "/bin/mkdir -p $BACKUP_TARGET/weekly.{0..$WEEKS_TO_SAVE}" # Delete the oldest backup folder. /bin/rm -rf $BACKUP_TARGET/weekly.$WEEKS_TO_SAVE # Shift all the backup folders up a day. for i in $(eval echo {$WEEKS_TO_SAVE..1}) do /bin/mv $BACKUP_TARGET/weekly.$[${i}-1] $BACKUP_TARGET/weekly.${i} done # Copy archives to weekly /bin/cp $BACKUP_TARGET/daily.1/* $BACKUP_TARGET/weekly.1/ else /bin/echo "Skipping Weekly archive creation until" $BACKUP_DAYOFWEEK fi # CREATE MONTHLY BACKUP DAYOFMONTH=$(date +%d) if [ $DAYOFMONTH -eq $BACKUP_DAYOFMONTH ] then /bin/echo "It's the" $DAYOFMONTH"st! Copying latest Daily backups to Monthly..." eval "/bin/mkdir -p $BACKUP_TARGET/monthly.{0..$MONTHS_TO_SAVE}" # Delete the oldest backup folder. /bin/rm -rf $BACKUP_TARGET/monthly.$MONTHS_TO_SAVE # Shift all the backup folders up a day. for i in $(eval echo {$MONTHS_TO_SAVE..1}) do /bin/mv $BACKUP_TARGET/monthly.$[${i}-1] $BACKUP_TARGET/monthly.${i} done # Copy archives to monthly /bin/cp $BACKUP_TARGET/daily.1/* $BACKUP_TARGET/monthly.1/ else /bin/echo "Skipping Monthly archive creation until the" $BACKUP_DAYOFMONTH"st" fi /bin/echo "======================================================================" /bin/echo "Completed Backup Task:" $BACKUP_NAME /bin/echo "======================================================================"