Linux /Centos 7 服务器定时将备份信息、日志发送到邮箱
公司业务需要将数据库每日备份,然后在保存到本地硬盘,且未搭建文件服务器。于是换一种思路解决,利用Linux发送邮件并添加备份文件作为附件信息,发送到指定的邮箱,然后定时执行脚本的下载附件备份到本地
一、邮箱相关配置
1、安装邮件服务
yum install mailx
若centos8 无法安装,需要执行以下命令
sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-* sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*
2、编辑邮件服务文件
vim /etc/mail.rc
3、配置邮箱证书
证书名称根据自己情况而定
mkdir -p /root/.certs/ ####创建目录,用来存放证书 echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/163.crt ####向163请求证书 certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt ####添加一个SSL证书到证书数据库中 certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt ####添加一个Global 证书到证书数据库中 certutil -L -d /root/.certs ####列出目录下证书
若系统没有 certutil 需要进行安装,centos安装命令如下:
yum install nss-tools
别的系统可参考以下命令:
sudo apt install libnss3-tools -or- sudo yum install nss-tools -or- sudo pacman -S nss -or- sudo zypper install mozilla-nss-tools
安装好之后,若是出现 certutil: function failed: security library: bad database.
参考:certutil: function failed: security library: bad database
安装完成之后,使用以下命令即可发送邮件,目标邮箱收到邮件则表示配置成功 -a 后面的参数为需要发送邮件的地址
mail -s "测试邮件" -a /docker/xxxxxxxxxxxx xxxxxx@qq.com
二、shell脚本
目的是达到定时自动发送邮件,所以还需要shell脚本支持
#!/bin/bash
echo | mailx -s `date +"%Y.%m.%d"`系统日志 -a /xxxxxxxxxxxxxx-`date +"%Y%m%d"`.log -a /xxxxxxxxxxxxxxxx-`date +"%Y%m%d"`.log xxxxxxxxxxxx@qq.com
设置脚本定时执行即可
参照
参考资料: