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

获取系统时间用到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

时间: 2024-07-29 16:10:10

linux 定时巡检系统时间并且发邮件的相关文章

Linux Windows 定时修改系统时间

#/bin/bash # beforTime=02:00 afterTime=08:00 beforTime=$(echo $beforTime | awk -F : {'print $1'}) afterTime=$(echo $afterTime | awk -F : {'print $1'}) Flag=0 while true do     sleep 2s     echo "date: $(date +"%Y-%m-%d %H:%M:%S")"     

Qt linux下设置系统时间

想要能修改 ARM板上的系统时间,试了两种方法: 1.采用系统命令.system() 尝试了很多命令,date -s "20090807 16:02:23" :date -s 16:02:23 :但板子上的日期就是设置不成功,采用date -s 16:02:23 可以将时间设置成功.于是不得不考虑别的方法. 2.标准C库 首先感叹下,C库很强大呀! 而且我觉着C库的移植行很好.相比较采用system()命令,可能由于linux 版本的不同,好多命令可能存在差异,比如redhat 和ub

如何更新linux服务器的系统时间

由于服务器的时间出现错误,可采用以下方法来更新linux服务器的系统时间: 方法一: 1,首先yum 安装本地ntpdate客户端,更新ntpdate cn.pool.ntp.org时使用 [[email protected] ~]# yum install ntpdate 2,使用 ntpdate cn.pool.ntp.org进行更新. [[email protected] ~]# ntpdate cn.pool.ntp.org 15 Sep 16:46:32 ntpdate[15965]:

Linux怎样修改系统时间

修改linux的时间可以使用date指令 修改日期: 时间设定成2009年5月10日的命令如下: #date -s 05/10/2009 修改时间: 将系统时间设定成上午10点18分0秒的命令如下. #date -s 10:18:00 修改时区: 找到相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai替换当前的/etc/localtime. 修改/etc/sysconfig/clock文件的内容为: ZONE=”Asia/Shanghai” UTC=false A

Linux C 获取系统时间信息

比如获取当前年份:               /* 获取当前系统时间 暂时不使用 int iyear = 0; int sysyear = 0; time_t now; struct tm *timenow; time(&now); timenow = localtime(&now); sysyear = timenow->tm_year+1900; */ linux下获取系统时间的方法 可以用 localtime 函数分别获取年月日时分秒的数值. Linux下获得系统时间的C语言

Linux搭建smtp服务器+laravel5.2发邮件配置

/** * 这里主要是想通过自己搭建smtp服务器,配置laravel5.2框架,实现邮箱发邮件功能, * 主要内容是搭建smtp服务器,laravel5.2发邮件顺手提一下 */ /** * 1.laravel5.2通过Mail实现发邮件的功能 * 2.搭建自己的smtp服务器 * 3.修改mail的配置,将主机和账号修改为自己的smtp代理服务器 * * 相关技术基础(php基础知识.laravel5.2框架的简单操作.Linux运维基础知识) */ /** * 1.laravel5.2通过

linux 修改服务器系统时间

前言 因项目需求需要修改统一系统时间 详情配置如下: 在CentOS 7里面有一个命令timedatectl可以帮助我们修改服务器的时区. 1. 查看服务器里的时间设置 timedatectl ,它等同于 timedatectl status : 2. 了解 timedatectl 命令的各个参数: 3. 设置时间 下面看下CentOS修改服务器系统时间 linux安装完毕后,一般都是国外的世界,一点都不方便设置任务,或者导致网站获取本地的时间错乱,所以就需要把服务器的时间改为和本地时间一致,也

Linux永久修改系统时间和时区方法

修改时区: 1> 找到相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai 用这个文件替换当前的/etc/localtime文件. 或者找你认为是标准时间的服务器,然后 #scp [email protected]:/etc/localtime /etc/localtime 2> 修改/etc/sysconfig/clock文件,修改为: ZONE="Asia/Shanghai" UTC=false ARC=false 临时方法: TZ='As

Linux命令-更新系统时间和硬件时间

date 查看当前系统时间 yum install -y ntpdate 安装ntpdate程序 ntpdate time.windows.com 从互联网更新系统时间 date 再次查看当前系统时间 让linux自动从time.windows.com自动同步时间 vi /etc/crontab 加上一句: 00 0 1 * * root ntpdate -s time.windows.com 硬件时间: hwclock --show 显示硬件时间 hwclock --systohc 将系统时间