date时间转换指定格式适配secure

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了date时间转换指定格式适配secure相关的知识,希望对你有一定的参考价值。

一、概述

最近编写脚本通过/var/log/secure查询指定日期,登录失败的记录
/var/log/secure日志格式:
当日期小于10时:
Jul 7 08:18:48 exoa sshd[7666]: Failed password for root from 192.168.60.172 port 27378 ssh2
当日期大于10时
Jul 17 08:18:48 exoa sshd[7666]: Failed password for root from 192.168.60.172 port 27378 ssh2

二、date时间适配secure日期

主要解决Jul  7和Jul 17的问题

1、获取时间
date +"%b %d" ==> "Jul 17"
date -d "-10 day" +"%b %d" ==> "Jul 07"

2、将0取消掉
date -d "-10 day" +"%b %d"|sed s#0# #g ==> "Jul 7"

3、当日期为10号时,也会出现将0替换导致时间不准,加入if判断
datevalue=$(date +"%b %d")
if [ $datevalue -lt 10 ]
then
datevalue=$(echo "$datevalue"|sed s#0# #g)
fi

三、secure日期转换date时间格式

需求将Jul  7 08:18:48转换为年月日时分秒的格式

1、日期转换
date -d "Jul 7 08:18:48" +"%Y%m%d%H%M%S" ==>"20220707081848"

2、脚本实现
cat /var/log/secure|grep Failed password|grep "$datevalue"|while read line
do
timevalue=$(echo $line|awk print $1 " " $2 " " $3)
loginerrtime=$(date -d "$timevalue" +"%Y%m%d%H%M%S")
done

以上是关于date时间转换指定格式适配secure的主要内容,如果未能解决你的问题,请参考以下文章

移动端js怎么时间格式转换成时间戳

将日期转换成标准年月日时分秒形式插入数据库

JS日期格式的转换

js怎么把时间戳转换为日期格式

如何将sql中带时分秒的日期转换为只有年月日的

oracle 计算两个时间相差的时分秒