VPS服务器数据自动FTP备份: bash+lftp+crontab
2013-06-29 TECH Backup Bash crontab lftp shell 2
话不多少了直接上脚本
需要lftp支持,centos下 yum intslal lftp,debian下apt-get install lftp
#!/bin/bash #--CONFIG-- MUSER="root" MPASS="ROOT-PASSWORD-OF-YOUR-MYSQL" MHOST="localhost" FTPU="FTP-USERNAME-OF-YOUR-BACKUP-SERVER" FTPP="FTP-PASSWORD-OF-YOUR-BACKUP-SERVER" FTPS="IP-OF-YOUR-BACKUP-SERVER" FTPDIR="TARGET-DIR-FOR-YOUR-BACKUP-DATA" MYSQL="$(which mysql)" MYSQLDUMP="$(which mysqldump)" #---BAK STORE tmp files--- BAK="/root/backup" GZIP="$(which gzip)" TAR="$(which tar)" NOW=$(date +"%Y%m%d") #--clear old files first-- [ ! -d $BAK ] && mkdir -p $BAK || /bin/rm -f $BAK/* #--mysqldump & tar codefiles-- DBS=("dbname-1" "dbnam-2") DIR=("/home/wwwroot/site-1/" "/home/wwwroot/site-2/") for db in ${DBS[*]} do FILE=$BAK/sql-$db-$NOW.gz echo $FILE $MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE done for(( i=0; i<${#DIR[@]}; i++ )) do CODE=$BAK/code-${DBS[$i]}-$NOW.tar echo $CODE $TAR -cf $CODE ${DIR[$i]} done #--ftp upload then clear tmp files again-- lftp -u $FTPU,$FTPP -e "mkdir /$FTPDIR/$NOW;cd /$FTPDIR/$NOW; mput $BAK/*; quit" $FTPS [ ! -d $BAK ] && mkdir -p $BAK || /bin/rm -f $BAK/* #--crontab -e setting: every 3days-- # 0 3 */3 * * /root/backup.sh>/dev/nul 2&1
上一篇: 小型网站CDN加速方案
如果想把各个数据库单独命名备份然后再打包在一起要怎么做呢