实现linux服务器下自动备份网站数据

 

实现linux服务器下自动备份网站数据


最近把网站迁移到了阿里云服务器了,只装了个LNMP,没有网站管理面板,备份数据比较麻烦,得用命令打包,再用ftp下载到本地,比较麻烦。于是琢磨着搞个自动化的程序备份数据。在这里分享下解决方法

一,为什么要备份数据

1.服务器软件环境更改

刚刚接触云服务器,对它很好奇经常瞎捣鼓,避免在更改软件环境的时候,网站数据被破坏

2.服务器故障

这个估计可能性比较小,但是以防万一

3.误操作

这个的可能性比较大,主要预防这个

二,怎么实现自动备份

1.编写备份脚本

新建一个autobackup.sh文件,用editplus或者记事本打开,写入以下命令并修改成自己的内容,后面都有备注,应该比较简单。修改完毕之后,我们需要在/home下建立backup文件夹,到时候备份运行找不到目录是不好备份的。再次,上传autobackup.sh至我们服务器的ROOT目录下:

#你要修改的地方从这里开始
MYSQL_USER=            #mysql用户名
MYSQL_PASS=            #mysql密码
MAIL_TO=               #数据库发送到的邮箱
WEB_DATA=/home/wwwroot #要备份的网站数据
#你要修改的地方从这里结束

#定义数据库的名字和旧数据库的名字
DataBakName=Data_$(date +"%Y%m%d").tar.gz
WebBakName=Web_$(date +%Y%m%d).tar.gz
OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz
OldWeb=Web_$(date -d -5day +"%Y%m%d").tar.gz
#删除本地28天前的数据
find /home/backup -mtime +28 -name "*.*" -exec rm -rf {} \;
cd /home/backup
#导出数据库,一个数据库一个压缩文件
for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
(/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)
done
#压缩数据库文件为一个文件
tar zcf /home/backup/$DataBakName /home/backup/*.sql.gz
rm -rf /home/backup/*.sql.gz
#发送数据库到Email,如果数据库压缩后太大,请注释这行
echo "主题:数据库备份" | mutt -a /home/backup/$DataBakName -s "内容:数据库备份" $MAIL_TO
#压缩网站数据
tar zcf /home/backup/$WebBakName $WEB_DATA

2.添加计划任务

 

chmod +x /root/autobackup.sh #执行文件赋予权限
crontab -e #准备添加定时设置
00 00  * /root/autobackup.sh # i命令符回车后插入前面的脚本,意思是每天半夜12点备份数据

最后,我们自己测试一下可以执行 ./autobackup.sh文件就可以执行备份。以上的自动备份教程为了安全起见,会同时发送数据库备份至我们的邮箱中保证数据的安全。

未经允许请勿转载:超人很忙空间 » 实现linux服务器下自动备份网站数据

赞一个 (0)
分享到: +More