网站数据备份是对于网站管理员来说是一件非常重要的事,手工备份不仅费时费力,而且还会不及时。如果你用的VPS或者独立服务器,那么可以用下面的方法实现自动备份。
自动备份一般可以通过电子邮件备份和FTP备份两种。并不是每个人都有FTP用来远程备份,免费邮箱现在倒是满天飞啊,而且个个都是好几个G,还号称可以无限扩容,免费的不用白不用,所以这里就介绍下怎么用邮件来备份VPS数据(方法不止一种,这是我用的方法)。 一、软件准备
首先你需要安装邮件发送客户端和mutt,如果你是Debian系统可以参考《Debian下安装配置exim4发送邮件》一文进行安装,至于mutt,安装很简单:
Debian下:
# apt-get install mutt
CentOS下:
# yum install mutt
安装完发封邮件试试:
mutt -s "Title: mail test" -a /home/test.tar.gz test@gmail.com < /home/mailmessage.txt
-s后面是邮件的标题.
-a后面是发送的附件.
test@gmail.com 表示发送邮件的目的地址.
< /home/mailmessage.txt 表示读取mailmessage.txt以邮件正文形式发送.
如果收到邮件就表示安装成功了,下一步配置备份脚本和定时任务。
给出我用的脚本:
#!/bin/bash #定义数据库的名字 DataBakName=Data_$(date +"%Y%m%d").tar.gz WebBakName=Web_$(date +%Y%m%d).tar.gz #删除本地3天前的数据 rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz rm -rf /home/backup/Web_$(date -d -3day +"%Y%m%d").tar.gz #导出mysql数据库 /usr/local/mysql/bin/mysqldump -u root -ppassword dbname > /home/backup/seeke.sql #压缩数据库 tar zcf /home/backup/$DataBakName /home/backup/*.sql #删除sql文件 rm -rf /home/backup/*.sql #压缩网站数据 tar zcvf /home/backup/$WebBakName /home/wwwroot/ 延时10秒钟 sleep 10s #备份数据到邮箱 /usr/bin/mutt -s "Title:web+mysql backup" test@qq.com -a /home/backup/$DataBakName -a /home/backup/$WebBakName </home/backup/backup.txt #注意防火墙是否打开了25端口,要不然邮件发不出去. #mutt参数中 -s 指定发送邮件的标题 #mutt参数中 -a 指定邮件包含的附件,如果多个附件,每个附件都需要一个 -a 参数 #mutt参数中 </root/backup.txt 指定邮件的内容为backup.txt的内容
把以上脚本按照需求修改后保存成.sh文件,关于设置脚本自动运行,可以参考《debian下cron的使用方法和常见问题》一文,一般设置在凌晨,如:0 3 * * * /root/backup.sh