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。

未经允许不得转载:莫小奈博客 » debian定时备份网站+mysql,利用mutt发送到指定邮箱

评论 1

评论前必须登录!

登陆 注册
  1. juneng一个博客能让人流连忘返,讲真,靠的是实力!