linux 定时巡检系统时间并且发邮件

Posted lc226

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 定时巡检系统时间并且发邮件相关的知识,希望对你有一定的参考价值。

获取系统时间用到data命令

date

发送邮件用的是mail命令,这个需要安装,yum -y intall mail

配置smtp,添加如下
vi /etc/mail.rc set from=123456@qq.com set smtp=smtp.qq.com set smtp-auth-user=123456 set smtp-auth-password=runoob set smtp-auth=login
测试 :mail -s "标题" 可以多个邮箱,邮箱,邮箱 < 正文内容
`mail -s "15,16服务器时间" 15118693561@139.com  < /home/es/mail.txt `
关于-s的解释
-s subject
在命令行上指定subject(仅在-s标志用作主题之后的第一个参数;注意引用包含空格的主题)。

然后就是用定时任务 crontab 定时发邮件起到定时巡检系统的作用

crontab -e 编辑定时任务

minute:代表一小时内的第几分,范围 0-59。
hour:代表一天中的第几小时,范围 0-23。
mday:代表一个月中的第几天,范围 1-31。
month:代表一年中第几个月,范围 1-12。
wday:代表星期几,范围 0-7 (0及7都是星期天)。
who:要使用什么身份执行该指令,当您使用 crontab -e 时,不必加此字段。
command:所要执行的指令。

----40 15 * * * /home/es/time.sh

在每天的 15:40 执行此脚本

crontab -l 查看定时任务

 

编辑shell脚本获取系统时间然后用定时任务每天跑

#!/bin/bash
vart=`find /home/es -name "mail.txt"`  #查看该目录下有没有mail.txt
if [ -z $vart ] ##如果没有,find返回为空
then
#echo ‘The user will create the mail.txt‘
echo "当前系统时间:" `date` >> mail.txt   ###创建mail.txt并且写入时间
echo "1.:Jan,2;Feb,3:Mar,4:Apr,5:May,6:Jun,7:Jul,8:Aug,9:Sep,10:Oct,11:Now,12:Dec" >>mail.txt
echo ‘mail.txt create ok‘
varm=`mail -s "15,16服务器时间" 15118693561@139.com < /home/es/mail.txt `  ##发送邮件
if [ -z $varm ]  ##判断一下邮件是否发送成功
then
echo "mail send ok~"
else
echo ‘mail error look in time.sh‘
fi
else
varr=`rm -rf /home/es/mail.txt`
if [ -z $varr ] #如果该目录下有Mail.txt,则删除mail.txt,重新创建mail.txt并发送邮件
then
echo ‘delete the mail.txt‘
echo "当前系统时间:" `date` >> mail.txt
echo "1.:Jan,2;Feb,3:Mar,4:Apr,5:May,6:Jun,7:Jul,8:Aug,9:Sep,10:Oct,11:Now,12:Dec" >>mail.txt
echo ‘create new mail.txt ok!‘
varm=`mail -s "15,16服务器时间" 15118693561@139.com < /home/es/mail.txt `

if [ -z $varm ]
then
echo "mail send ok~"
else
echo ‘mail error look in time.sh‘
fi
else
echo ‘error‘
fi
fi

 

以上是关于linux 定时巡检系统时间并且发邮件的主要内容,如果未能解决你的问题,请参考以下文章

为啥巡更系统的通讯日期和巡检日期不一致

求一个DB2 v9.7的日常巡检脚本! for Linux and AIX 如果实用的,额外奖励大虾50分!

linux 自动发邮件

linux学习日记之系统定时延时任务

Linux系统巡检常用命令

精品Linux系统硬件网络系统及安全巡检邮箱告警脚本shell脚本