定时备份数据库文件、并发送到邮箱中。
使用 crontab 定时任务,执行sh脚本备份现有的数据库,
并通过mutt 这个软件发送到邮箱中。
上面是使用原理。 来看看操作步骤:
第一、建立sh脚步,并赋予执行的权限。
第二、编写sh脚本内容,保存。
第三、安装mutt软件,发送邮件
第四、建立crontab 定时任务。
先来看第一步:
vim mysql_back.sh
chmod a+x mysql_back.sh
给mysql_back.sh 赋予执行的权限。
第二步:
#!/bin/sh
echo "mysql backup start..."
/usr/bin/mysqldump --opt aa -u root -psong >aa1.sql
/usr/bin/mysqldump --opt tts -u root -psong >tts.sql
#压缩好以后,把文件发送到邮箱
#echo "mysql_data" | mutt -s "数据库备份" -a ./sqldata.tar.gz
date=$(date +"%Y%m%d")
#定义昨天的日期
yester_date=$(date -d yesterday +"%Y%m%d")
tarName=sqldata_$date.tar.gz
sendToEmail="574482856@qq.com"
ip="127.0.0.1"
#开始压缩
tar -czf $tarName ./*.sql
echo "$ip 数据库自动备份,请查看附件" | mutt -s "${ip} _ $date数据库备份" $sendToEmail -a ./$tarName
#删除sql文件 防止占用空间
rm ./*.sql
#判断昨天是否存在压缩包,如果存在就删除
yesterday_file="./sqldata_$yester_date.tar.gz"
if [ -f "$yesterday_file" ]; then
rm -rf $yesterday_file
fi
echo "mysql backup success!"
保存退出
下载文件,直接执行
如果你是自己安装的数据库,需要指定一下 mysqldump 这个路径。不然可能会不能执行。
第三、安装mutt
首先查看是否有安装mutt
rpm -q mutt
发现没有安装,那就执行命令安装
yum install -y mutt
下一步:要使用哪个帐号发送邮件,比如:
echo "邮件内容" | mutt -s "邮件标题" 574482856@qq.com -a /a/root.txt
比如使用 xiaosong 这个用户,那就进入 /home/xiaosong 这个文件夹
vim .muttrc
粘贴以下内容:
set charset="utf-8"
set rfc2047_parameters=yes
#如果你想自定义发件人信息,需要进行如下设置
set envelope_from=yes
set use_from=yes
set from=574482856@qq.com
set realname="xiaosong_server"
把以上代码复制粘贴到这个文件里,保存,退出
执行发送邮件的命令:
echo "test" | mutt -s "subject" 574482856@qq.com
如果这里不报任何错误,则发送成功,发送邮件有一定的延迟,请等待,如果长时间没有收到,请检测邮箱是否拦截!
问题:如果没有报错,请跳过此步骤
sendmail: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
sendmail: warning: inet_protocols: configuring for IPv4 support only
postdrop: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
postdrop: warning: inet_protocols: configuring for IPv4 support only
postdrop: warning: unable to look up public/pickup: No such file or directory
解决方案:
(1)修改# /etc/postfix/main.cf 这个文件
(2)修改内容: 把inet_protocols = all 修改为inet_protocols = ipv4
(3)报存退出 wq!
(4)重新启动# /etc/init.d/postfix restart使修改生效 或使用 service postfix restart
执行完命令以后,在这个 /home/xiaosong 文件夹下有一个 sent 的文件
使用 vim sent 看看是不是记录下来了。
看看邮箱是不是收到内容:
第四步:建立定时任务
crontab -e 编辑定时任务
* * * * * /root/back.sh
00 00 * * * /root/back.sh 每一天执行一次.