昔我往矣

Bash备份网站至邮件

2014年01月14日

重新开始写博客,最重要的是什么?数据啊!!!服务器不靠谱,数据丢失了哭都来不及。所以要备份啦,今天才开始动手做已经很对不起了。
Global Network
本来使用Wordpress的BackWPup插件做网站备份,因为安全因素,禁止了某些函数,导致不能备份到Dropbox;考虑备份到ftp,ftp服务器有数据大小的限制,几十M的备份包直接删除;后来使用该插件的邮件备份功能将数据备份到163邮箱。但是只能备份自己的网站,同一个服务器上的其它网站不能备份。为了做自定义的备份,那就写脚本喽。半小时搞定,丰衣足食~

备份的主要内容是数据库和网站目录。大致思路:
导出数据库 --> 将导出的数据库和网站一起压缩 --> 发送到邮件。

确实很简单吧,依赖mutt软件,需要先安装。脚本如下:

#!/bin/bash

email=example@163.com
dir_name=`date +"%Y%m%d"`
backup_dir=/tmp/$dir_name
if [ -d $backup_dir ]
then
    rm -rf $backup_dir
fi
mkdir $backup_dir
lhzhi_dir=$backup_dir/lhzhi
mkdir -p $lhzhi_dir

www_lhzhi=/var/www/html/lhzhi/
tar_lhzhi=$lhzhi_dir/lhzhi.tgz

mysqldump -u useroflhzhi -pxxx dboflhzhi > $lhzhi_dir/${dir_name}_lhzhi.sql
tar czfP  $tar_lhzhi $www_lhzhi $lhzhi_dir/${dir_name}_lhzhi.sql

lhzhi_content="Here is your website:www.lhzhi.com on $dir_name"
echo $lhzhi_content | mutt -s "lhzhi_backup_$dir_name" -a $tar_lhzhi -b $email

然后简单运行下这个脚本就可以登录邮件收取备份数据了,为了做自动化一些,可以把这个脚本加入到crontab做定时执行。

# crontab -l
0 2 * * *  /bin/bash /root/bin/backup.sh

服务器每天凌晨两点将数据发送往目标邮箱。

当前暂无评论 »

添加新评论 »