linux 下自动备份站点数据和数据库脚本

发布于 2018-01-01  245 次阅读


需要根据自己需要稍作修改。。

保存为.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

LoneKing