linux定时备份到邮箱,定时任务备份数据库并发送邮箱

本文介绍了如何在Linux系统中使用crontab定时任务和mutt软件来定期备份MySQL数据库,并将备份文件通过电子邮件发送到指定地址。首先,创建并授权执行sh脚本,然后编写脚本内容,包括mysqldump备份数据库和tar压缩文件。接着,安装mutt并配置发送邮件的设置。最后,设置crontab定时任务以每天执行一次备份。注意在发送邮件过程中可能出现的问题及解决方案。
摘要由CSDN通过智能技术生成

定时备份数据库文件、并发送到邮箱中。

使用 crontab   定时任务,执行sh脚本备份现有的数据库,

并通过mutt 这个软件发送到邮箱中。

上面是使用原理。  来看看操作步骤:

第一、建立sh脚步,并赋予执行的权限。

第二、编写sh脚本内容,保存。

第三、安装mutt软件,发送邮件

第四、建立crontab 定时任务。

先来看第一步:

vim mysql_back.sh

67a6b13f719114cd78dc67e85e300e1c.png

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!"

b2669d9d7a80919d2243aa9358621769.png

保存退出

下载文件,直接执行

如果你是自己安装的数据库,需要指定一下 mysqldump 这个路径。不然可能会不能执行。

第三、安装mutt

首先查看是否有安装mutt

rpm -q mutt

877cec9d225e28962866c9d7eb6cf86e.png

发现没有安装,那就执行命令安装

yum install -y mutt

dbf0e6e93185766949fe2293d1e8a910.png

下一步:要使用哪个帐号发送邮件,比如:

echo "邮件内容" | mutt -s "邮件标题" 574482856@qq.com -a /a/root.txt

比如使用  xiaosong 这个用户,那就进入  /home/xiaosong 这个文件夹

vim  .muttrc

粘贴以下内容:

94854c4a9ce563df30071ffd40f1b7fa.png

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

48b5601ca9e07a8960921a85708e3c7b.png

如果这里不报任何错误,则发送成功,发送邮件有一定的延迟,请等待,如果长时间没有收到,请检测邮箱是否拦截!

问题:如果没有报错,请跳过此步骤

07b179ddccc37abf52b09528abffc8cb.png

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 的文件

d57a798a3290e83b7c2ecd42b5a4a41d.png

使用 vim sent 看看是不是记录下来了。

a4351addca6c15f4b6ae9d84ff76a6a5.png

看看邮箱是不是收到内容:

8f61e1c454c659fa4071ef23550c9676.png

第四步:建立定时任务

crontab -e   编辑定时任务

* * * * * /root/back.sh

25aa8aec6a77c18ab7fb3de42aced1f2.png

00 00 * * * /root/back.sh           每一天执行一次.

567589cc5a5635173d0b654c4fd8edb2.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值