暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

shell编程中的时间处理

565

在运维过程中时常需要写一些运维脚本来监控进程日志更新情况,比如可以检查日志最新的更新时间和当前时间的差,如果超过某个阈值时间,就说明进程异常,日志无法更新,然后配置相应的自动预处理,可以实现程序的重启来恢复业务。


为此需要掌握以下几种时间处理应用方法:


1、生成时间戳作为日志文件名


time1=$(date  +%Y%m%d%H%M%S)

df -k   >"disk"$time1.log



2、通过时间加减生成字符串判断日志或数据文件是否存在


time1=$((`date +%s`+3600))   #当前时间加3600秒,也就是一个小时后的时间

time1=$(date +%Y-%m-%d\ %H:%M:%S -d "1970-01-01 UTC $time1 seconds");

echo $time1



3、可以通过stat获取日志更新时间,计算时间差


time=$(stat nohup.log|grep Modify|cut -c9-27)  #nohup.log为监测日志,获取更新时间

time1=$(date +%s -d "$time")      #将日志的更新时间转化为秒

time2=$(date +%s)     #获取系统当前时间转化为秒

time3=$(($time2-$time1))   #计算系统时间和日志时间的差,单位为秒

if [ $time3 -gt 300 ]        #判断时间差超过300秒,也就是5分钟

then

echo “log error”              #日志异常的处理逻辑

else

echo “log ok”                 #日志正常的处理逻辑

fi


最后修改时间:2020-04-16 08:14:59
文章转载自数据库平台优化,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论