教程集 www.jiaochengji.com
教程集 >  脚本编程  >  shell  >  正文 自用linux备份脚本(网站文件+mysql)

自用linux备份脚本(网站文件+mysql)

发布时间:2014-07-20   编辑:jiaochengji.com
配合crontab自动对网站目录及mysql进行备份,本地一份 ftp一份 邮箱一份;本地及ftp自动删除3天前的;linux上需要sendmail及ftp。

很实用,收藏好。

复制代码 代码如下:

#!/bin/bash
#功能:自动备份网站及mysql 自动删除本地及ftp3天前的备份
#更多:http://www.ptcms.com/product-linux.html
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export 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 #数据库备份名
WebBakName=Web_$(date +%Y%m%d).tar.gz  #网站备份名
OldFTPData=Data_$(date -d -3day +"%Y%m%d").tar.gz
OldFTPWeb=Web_$(date -d -3day +"%Y%m%d").tar.gz
OldLOCData=Data_$(date -d -1day +"%Y%m%d").tar.gz
OldLOCWeb=Web_$(date -d -1day +"%Y%m%d").tar.gz

#删除本地之前的备份
rm -rf /home/backup/$OldLOCData
rm -rf /home/backup/$OldLOCWeb
cd /home/backup
#备份mysql
for db in `mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`;
do
    if [ $db != "information_schema" ] && [ $db != "mysql" ];then
        (/usr/local/mysql/bin/mysqldump -uroot -pPTcms.com ${db} --skip-lock-tables > ${db}.sql)
    fi
done

#压缩打包mysql
tar zcf $DataBakName *.sql
rm -rf *.sql

#压缩打包网站
tar zcf $WebBakName $WEB_DATA

#数据上传至ftp
ftp -v -n $FTP_IP << END
user $FTP_USER $FTP_PASS
type binary
cd $FTP_backup
delete $OldFTPData
delete $OldFTPWeb
put $DataBakName
put $WebBakName
bye
END
#以附件方式把数据发送给邮箱
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

您可能感兴趣的文章:
mysql备份与同步脚本
vps自动备份shell脚本代码
自用linux备份脚本(网站文件+mysql)
mysql命令之备份数据库
Linux下备份与还原整个MySQL整个数据库的脚本
网站备份与数据库备份shell脚本
linux 下mysql自动备份的shell脚本
使用LVM快照功能实现MySQL热备份
linux下mysql自动备份与ftp上传的shell脚本
MySQL数据库备份

[关闭]
~ ~