共用自用的linux備份指令碼(webdata+mysql) 功能就是配合crontab自動對網站目錄及mysql進行備份本地一份 ftp一份 郵箱一份本地及ftp自動刪除3天前的linux上需要sendmail及ftp如果沒有的話可以yum安裝一下使用的時候設定一下自己的資訊
#!/bin/bash www.2cto.com #功能:自動備份網站及mysql 自動刪除本地及ftp3天前的備份#更多:http://www.ptcms.com/product-linux.htmlPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATH#備份設定
MYSQL_USER=root #mysql使用者MYSQL_PASS=root #mysql密碼WEB_DATA=/home/wwwroot #網站根目錄FTP_IP=127.0.0.1 #遠程FTP地址FTP_USER=backup #遠程FTP使用者FTP_PASS=backup #遠程FTP密碼FTP_backup=/backup #遠程FTP目錄
MAIL_TO=backup@gmail.com #接收mysql郵件#設定備份名及備份目錄DataBakName=Data_$(date +"%Y%m%d").tar.gz #Database Backup名WebBakName=Web_$(date +%Y%m%d).tar.gz #網站備份名OldFTPData=Data_$(date -d -3day +"%Y%m%d").tar.gzOldFTPWeb=Web_$(date -d -3day +"%Y%m%d").tar.gzOldLOCData=Data_$(date -d -1day +"%Y%m%d").tar.gzOldLOCWeb=Web_$(date -d -1day +"%Y%m%d").tar.gz
#刪除本地之前的備份 www.2cto.com rm -rf /home/backup/$OldLOCDatarm -rf /home/backup/$OldLOCWebcd /home/backup#備份mysqlfor db in `mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`;doif [ $db != "information_schema" ] && [ $db != "mysql" ];then(/usr/local/mysql/bin/mysqldump -uroot -pPTcms.com ${db} --skip-lock-tables > ${db}.sql)fidone
#壓縮打包mysqltar zcf $DataBakName *.sqlrm -rf *.sql#壓縮打包網站tar zcf $WebBakName $WEB_DATA#資料上傳至ftpftp -v -n $FTP_IP << ENDuser $FTP_USER $FTP_PASS
type binary www.2cto.com cd $FTP_backupdelete $OldFTPDatadelete $OldFTPWebput $DataBakNameput $WebBakNamebyeEND#以附件方式把資料發送給郵箱echo "MySQL Data backup on $(date +"%Y-%m-%d") at $(date +"%T")" | mutt -a /home/backup/$DataBakName -s "MySQL Data Backup $(date +"%Y-%m-%d")" $MAIL_TO