获取系统时间用到data命令
date
发送邮件用的是mail命令,这个需要安装,yum -y intall mail
配置smtp,添加如下vi /etc/mail.rc set from=[email protected].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服务器时间" [email protected] < /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服务器时间" [email protected] < /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服务器时间" [email protected] < /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
原文地址:https://www.cnblogs.com/lc226/p/11259330.html