日志标签:mutt

wordpress备份并发email

时间:2011年06月16日作者:ronald查看次数:113 views评论次数:1

之前一直在使用 wordpress 的插件来备份博客,但是又感觉不太安全,因为备份文件只保留在本地硬盘上.当然如果有其它资源的话,可以使用rsync进行异地备份,这也是这个很好的选择.

由于不是每个人都有多一台备份服务器,所以我就考虑使用email保存备份文件了.本博客因为是使用VPS,那就跟普通的linux没有什么区别,所以就打算写一个bash脚本来备份数据库与页面并且把文件发送email到指定的邮件.因为备份的文件很大(30MB).所以一般的邮箱不一定能支持大附件(起码我试了gmail是不支持的,唉….本人还是gmail的忠实Fans),经测试后知道qq邮箱支持大附件. 所以推荐使用QQ邮箱保存.

系统环境 : Centos 5.5 32位, bash,lampp 1.7.4-linux(MySQL 5.1)

发Email :
用bash发送email需要用到mutt,因为mutt很方便的支持附件.如果没有安装mutt的话可以使用以下命令进行安装

1
#yum -y install mutt

以下是bash的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/sh
DATE=`date +"%Y%m%d_%H%M%S"`
 
## database setting
DB_USER_NAME=db_user_name
DB_PASSWORD=db_password
DB_NAME=db_name
 
BACKUP_ROOT=/wp_backup/wp
 
## 博客页面的Root,apache的根目录
WWW_ROOT=/opt/lampp/htdocs
 
## www file
BACKUP_WWW_FILE_GZ=$BACKUP_ROOT/www/blog_www_$DATE.sql.tar.gz
 
## db file
BACKUP_DB_FILE=$BACKUP_ROOT/db/blog_db_$DATE.sql
BACKUP_DB_FILE_GZ=$BACKUP_DB_FILE.tar.gz
 
mkdir $BACKUP_ROOT/www -p
mkdir $BACKUP_ROOT/db -p
 
## 备份博客页面
cd $WWW_ROOT
tar zcvf $BACKUP_WWW_FILE_GZ .
 
## 备份博客数据,使用 mysqldump命令
/opt/lampp/bin/mysqldump -u$DB_USER_NAME -p$DB_PASSWORD $DB_USER_NAME > $BACKUP_DB_FILE
cd /$BACKUP_ROOT/db
tar zcvf $BACKUP_DB_FILE_GZ blog_db_$DATE.sql
rm -f $BACKUP_DB_FILE
 
## 使用mutt发送email
echo "backup blog" | mutt -a $BACKUP_DB_FILE_GZ -a $BACKUP_WWW_FILE_GZ -s "backup blog in $DATE" ronaldchan2005@qq.com

然后使用cron每天执行一次,
注意 : 邮箱的空间是否足够.

另外:可以使用rsync备份到另一台服务器.