需要根据自己需要稍作修改。。
保存为.sh文件 授予777权限 然后添加crontab定时执行(编辑crontab -e)
30 3 * * * root /home/mysh/backup.sh 改为你sh文件所在位置 每天凌晨3点30执行备份脚本
此脚本备份7天内数据,每次备份会删除超过7天的数据,如想修改 可以自行修改下方-7day为-15day或其他
# Last Change: 2018-01-01 12:37:56 #!/bin/sh SqlUser=数据库账户 SqlPass=数据库密码 MailTo=邮箱 #可以发送附件到邮箱 前提是邮箱接收附件 有时大小会超的 Conf=/usr/local/nginx/conf #nginx conf文件路径 MyBackup=/home/mysh #此shell所在目录位置 FTP_USER=备份服务器FTP账户 FTP_PASS=FTP密码 FTP_IP=FTP服务器IP Pwd=123456 #压缩包密码 NowData=Data_$(date +"%Y%m%d").zip NowWeb=Web_$(date +%Y%m%d).zip OldData=Data_$(date -d -7day +"%Y%m%d").zip OldWeb=Web_$(date -d -7day +"%Y%m%d").zip cd $MyBackup mysqldump -u$SqlUser -p$SqlPass --databases XX数据库名 > 导出的文件名1.sql mysqldump -u$SqlUser -p$SqlPass --databases XX数据库名 > 导出的文件名2.sql cd $Conf zip -r ConfBackup.zip vhost rewrite mv ConfBackup.zip $MyBackup cd $MyBackup zip -r -P $Pwd $NowData "导出的文件名1.sql" "导出的文件名2.sql" "ConfBackup.zip" cd /home/wwwroot #站点目录所在 zip -r -P $Pwd $MyBackup/yourWeb1.zip yourWeb2 #站点目录名称 zip -r -P $Pwd $MyBackup/yourWeb2.zip yourWeb1 cd $MyBackup zip -P $Pwd -r $NowWeb yourWeb1.zip yourWeb2.zip echo "Dear,Your Backup" | mutt -s "Dear,Your Backup" $MailTo -a $NowData ftp -v -n $FTP_IP << END user $FTP_USER $FTP_PASS type binary delete $OldData delete $OldWeb put $NowData put $NowWeb bye END mv -f $NowData $NowWeb /home/backup #/homt/backup 为备份的数据所放位置 rm -r -f /home/backup/$OldData rm -r -f /home/backup/$OldWeb rm -r -f *.sql rm -r -f *.zip