前言

 

最近想要监控系统服务运行情况并实现自动发送邮件报警,zabbix虽然也可以实现这样的功能,但是这里使用一个非常简单的办法就可以实现。需要安装mailx工具,mailx是一个小型的邮件发送程序。

安装步骤

第一步:安装mailx

[root@ken ~]# yum install mailx -y

第二步:编辑配置文件

在mail.rc这个配置文件中,在末行添加如下的内容

[root@ken ~]# vim /etc/mail.rc
set from="1614833188@qq.com" #这个和第三行邮箱地址需要保持一致
set smtp="smtp.qq.com"
set smtp-auth-user="1614833188@qq.com"
set smtp-auth-password="xxxxxx" #邮箱授权码
set smtp-auth="login"

说明

from:对方收到邮件时显示的发件人

smtp:指定第三方发邮件的smtp服务器地址

set smtp-auth-user:第三方发邮件的用户名

set smtp-auth-password:用户名对应的密码,有些邮箱填的是授权码

smtp-auth:SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式

授权码获取

第一步:授权码获取

登录qq邮箱,点击设置>账户

点击生成授权码即可

测试

这句命令的后面的1614833188@qq.com是收件地址

[root@ken ~]# echo "这是一封测试邮件" | mail -s "测试邮件" @qq.com

以上已经实现了发邮件功能!!!

邮件发送书写格式

1)  无邮件正文

mail -s "主题"  收件地址

实例: mail -s "测试"  1614833188@qq.com

2) 有邮件正文

  • mail -s "主题"  收件地址< 文件(邮件正文.txt)

实例: mail -s "邮件主题"  1614833188@qq.com < /data.txt

  • echo "邮件正文" | mail -s 邮件主题  收件地址

实例: echo "邮件正文内容" | mail -s "邮件主题"  1614833188@qq.com

  • cat 邮件正文.txt | mail -s 邮件主题  收件地址

实例: cat  /data.txt | mail -s "邮件主题"  1614833188@qq.com

3)  带附件

  • echo "邮件正文" | mail -s "主题"   -a 附件  收件地址

实例: echo "邮件正文"  | mail -s "邮件主题"   -a /etc/passwd  1614833188@qq.com

实战案例

需求:

1. 检测本机web服务

2. 如果web服务宕机发送邮件报警通知管理员

第一步:编辑检测脚本

#!/bin/bash
while true
do
num=`ss -tl | grep -c http`
if [ $num -eq ];then
echo "web服务宕机,请立即检查修复!" | mail -s "web服务宕机" @qq.com
break
fi
done

第二步:后台运行脚本

[root@ken ~]# nohup bash test.sh &
[]
[root@ken ~]# jobs
[]+ Running nohup bash test.sh &

第三步:模拟web服务宕机

[root@ken ~]# systemctl stop httpd

第四步:检查邮件

Linux使用mailx发送邮件--技术流ken的更多相关文章

  1. Linux权限管理(week1_day5)--技术流ken

    权限概述 Linux系统一般将文件可存/取访问的身份分为3个类别:owner(拥有者).group(和所有者同组的用户).others(其他人,除了所有者,除了同组的用户以及除了超级管理员),且3种身 ...

  2. 网站集群架构(LVS负载均衡、Nginx代理缓存、Nginx动静分离、Rsync+Inotify全网备份、Zabbix自动注册全网监控)--技术流ken

    前言 最近做了一个不大不小的项目,现就删繁就简单独拿出来web集群这一块写一篇博客.数据库集群请参考<MySQL集群架构篇:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高 ...

  3. MySQL/MariaDB数据库忘掉密码解决办法--技术流ken

    前言 有些时候我们常常会忘掉一些服务的密码,比如系统密码,我们可以进入救援模式进行修改密码,可参考我之前的博客<Centos7破解密码的两种方法--技术流ken>.但有些时候我们也会忘掉数 ...

  4. Docker网络(五)--技术流ken

    本章内容 1.dokcer默认自带的几种网络介绍 2. 自定义网络 3. 容器间通信 4. 容器与外界交互 docker网络分为单个主机上的容器网络和多个主机上的哇网络,本文主要讲解单个主机上的容器网 ...

  5. zabbix实现QQ邮件报警通知--技术流ken

    前言 前几天搜了下网上使用zabbix邮件报警通知的文章,大多数还是使用mailx的方法,过程配置起来比较冗余繁琐,这几天想着把自己平时用到的qq邮件报警的方法分享出来供大家参考,以此减少不必要的步骤 ...

  6. 五分钟彻底学会iptables防火墙--技术流ken

    iptables简介 IPTABLES 是与最新的 3.5 版本 Linux内核集成的 IP 信息包过滤系统.如果 Linux 系统连接到因特网或 LAN.服务器或连接 LAN 和因特网的代理服务器, ...

  7. Docker之使用Dockerfile创建定制化镜像(四)--技术流ken

    前言 在之前的博客<Docker端口映射及创建镜像演示(二)--技术流ken>,演示了如何使用一个现有容器创建一个镜像,以及镜像在阿里云的上传和下载. 但是这样的镜像有很大的局限性,不能根 ...

  8. Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署动态网站(二)--技术流ken

    项目前言 在上一篇博客<Jenkins+Git+Gitlab+Ansible实现持续化集成一键部署静态网站(一)--技术流ken>中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个 ...

  9. Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站(一)--技术流ken

    前言 在之前已经写了关于Git,Gitlab以及Ansible的两篇博客<Git+Gitlab+Ansible剧本实现一键部署Nginx--技术流ken>,<Git+Gitlab+A ...

随机推荐

  1. Note | 常用指令和教程

    目录 Ubuntu操作系统 基础操作 SSH-ubuntu 登录退出 设置SSH秘钥以免密登录 设置别名以免IP登录 传输文件 设置短密码 驱动问题(循环自登陆,分辨率异常) boot空间不足 Win ...

  2. IDEA引入spring的命名空间

    我们在写spring的配置文件的时候,有的时候可能会用到 P 标签,然后我们发现自己并没有p标签啊,那么我们一起来看我是怎么解决的. 首先在我们的xml文件的首部添上这句话: xmlns:contex ...

  3. LeetCode刷题:第一题 两数之和

    从今天开始刷LeetCode 第一题:两数之和 题目描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种 ...

  4. java实现自动生成小学四则运算——朱庭震,詹祺豪

    组员:朱庭震,詹祺豪 Github地址:https://github.com/ztz1998/second/tree/master 1题目:实现一个自动生成小学四则运算题目的命令行程序. 2说明: 自 ...

  5. 快速制作U盘启动盘和U盘安装盘的方法

    制作U盘启动盘的方法: 1. 安装UltraISO; 2. 安装完成后,用管理员权限打开UltraISO; 3. 打开启动盘文件,一般为ISO文件: 4. 插入U盘: 5. 选择 启动 -> 写 ...

  6. centos安装discuz论坛

    wget http://download.comsenz.com/DiscuzX/3.3/Discuz_X3.3_SC_UTF8.zip #下载最新版Discuzunzip Dis......zip ...

  7. 生成uuid唯一标识符

    generate_uuid: function(){ var d = new Date().getTime(); if(window.performance && typeof win ...

  8. 吴恩达机器学习笔记36-正则化和偏差/方差(Regularization and Bias_Variance)

    在我们在训练模型的过程中,一般会使用一些正则化方法来防止过拟合.但是我们可能会正则化的程度太高或太小了,即我们在选择λ 的值时也需要思考与刚才选择多项式模型次数类似的问题. 我们选择一系列的想要测试的

  9. 终端(命令行)连接MySQL

    语法: mysql -h 主机名(ip) -u 用户名 -P 端口 -p 说明: -h: 主机名,表示要连接的数据库的主机名或者IP -u: 用户名,表示连接数据库的用户名 -P: 端口,表示要连接的 ...

  10. SpringMVC框架三:参数绑定

    这篇文章整合了SpringMVC和MyBatis: https://www.cnblogs.com/xuyiqing/p/9419144.html 接下来看看参数绑定: 默认Conrtroller可以 ...