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

 设置脚本定时执行即可

 

 

参照

参考资料:

1、Linux发邮件shell脚本与群发邮件shell脚本

2、linxu服务器配置本地免费ssl证书

posted @ 2022-09-30 15:49  铁锅炖猫  阅读(504)  评论(0编辑  收藏  举报