debian定时备份网站+mysql,利用mutt发送到指定邮箱


一、安装mutt

apt-get install mutt -y

二、编写备份脚本

vim backup_daliy.sh

代码如下:

#!/bin/bash
PATH=/bin:/usr/bin:/sbin:/usr/sbin::/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin;
export PATH
export LANG=C
# 系统文件备份路径
basedir=/backup/daily
# 数据库信息
user=root
passwd=xxxx
# 定义mysql备份路径
mysql_db_bak=$basedir/mysql_db_bak/$(date +%F_%H%M)
if [ ! -d "$mysql_db_bak" ];
 then
  mkdir -p $mysql_db_bak
fi
# 定义www备份路径
www_src_bak=$basedir/www_src_bak/$(date +%F_%H%M)
if [ ! -d "$www_src_bak" ];
 then
  mkdir -p $www_src_bak
fi
# 备份文件
mysql_bak=$mysql_db_bak/backup.sql.gz
www_bak=$www_src_bak/www.tar.bz2
# 定义备份文件作为附件的数组
all_bak=($mysql_bak $www_bak)
# 邮件标题
mail_subject="backup_daily_backup"
# 邮件内容
mail_content_mysql="mysql daily_backup at $(date +%F_%H%M)"
mail_content_www="website daily_backup at $(date +%F_%H%M)"
# 定义内容数组
mail_content=("$mail_content_mysql" "$mail_content_www")
# 邮件地址
mail_address="123456@qq.com"
# 1. 备份MySQL (数据库目录在/usr/local/mysql)
mysqldump -u$user -p$passwd --opt --skip-lock-tables --flush-logs --databases mysql_(数据库名称,可以是多个,空格隔开) | gzip > $mysql_bak
# 2.备份www源代码:
cd /usr/local
 tar -jpcf $www_bak www 
# 3.发送附件
for((i=0; i!=${#all_bak[@]}; ++i))
{
 echo ${mail_content[i]} | mutt -s $mail_subject $mail_address -a ${all_bak[i]}
}
# 4.清理mutt临时文件
cat /dev/null > ~/sent

三、测试一下

bash backup_daliy.sh

收到邮件,说明成功

四、编写定时任务

crontab -e
0 5 * * * /backup/backup_daliy.sh

五、启动任务

/etc/init.d/cron restart
有的机器是crond,debian8是cron。

声明:A Maverick Pig -|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - debian定时备份网站+mysql,利用mutt发送到指定邮箱


Stay hungry, Stay foolish.