no comments yet
02 Sep 2014

博客每日自动备份到163邮箱手记

备份是对数据负责,也是对自己负责。

操作环境:
centos 6.5 final X86_64
crontab
首先安装2个软件

yum install -y mutt sendmail
#启动sendmail
/etc/init.d/sendmail restart
#配置muti
cp /etc/Muttrc ~/.muttrc
#编辑muttrc配置文件
vi ~/.muttrc
#在开头添加如下内容
set envelope_from=yes
set from=xxx@xxx.xxx
set realname="xxxx"
set use_from=yes
#保存

下面来发邮件测试一下
在终端下运行

echo "邮件内容" | mutt -s "邮件主题" test@163.com

如果收到这封邮件则说明成功
下面附上备份脚本

#!/bin/bash
#数据库用户名
backup_mysql_username=root
#数据库密码
backup_mysql_password=123456
#备份的数据库
backup_mysql_db=blog
#备份的web目录
backup_web_dir=/home/wwwroot
#备份到的邮箱
backup_to_email=xxxx@163.com

# 进入到备份文件夹
cd /home/backup
# 创建存放备份文件和数据库的文件夹,并修改权限为777
mkdir -m 777 -p ./backup$(date +"%Y%m%d")
# 将需要备份的文件复制到备份文件夹内
cp -r $backup_web_dir ./backup$(date +"%Y%m%d")/wwwroot
# 导出数据库到备份文件夹内
/usr/local/mysql/bin/mysqldump -u$backup_mysql_username -p$backup_mysql_password $backup_mysql_db > ./backup$(date +"%Y%m%d")/blog.sql
# 压缩存放备份文件和数据库的文件夹
tar zcvf ./backup$(date +"%Y%m%d").tar.gz ./backup$(date +"%Y%m%d")
# 以附件形式发送压缩包到指定邮箱
echo "主人,vps备份文件请您接收."|mutt -s "$(date +%Y-%m-%d)Blog备份" -a ./backup$(date +"%Y%m%d").tar.gz -b $backup_to_email
# 删除备份文件夹与压缩包
rm -rf ./backup$(date +"%Y%m%d")
rm ./backup$(date +"%Y%m%d").tar.gz

由于是明文存储建议设置600权限

chmod 600 backup.sh

下面创建一个crontab

59 23 * * * sh /path/to/backup.sh

如果crond没有开启。请用如下命令开启

service crond start