【问题标题】:Bash script to extract date/time from line in log file用于从日志文件中的行中提取日期/时间的 Bash 脚本
【发布时间】:2018-07-21 21:35:55
【问题描述】:

我正在寻求帮助来编写一个脚本,该脚本将从日志文件中获取最后一行并获取最后一行的日期/时间条目。然后将当前日期/时间与文件最后一行的日期/时间进行比较。如果时差相差 60 分钟,则报告进程失败,即错误代码 1。

日志文件格式为:

Feb 11 16:46:01 [8064][8082] ssnotify.cpp:442:Send(): Send notification by mail: EvtType[5] SenderType[0] SenderName[Landing]    
Feb 11 16:50:52 [8064][8081] ssnotify.cpp:442:Send(): Send notification by mail: EvtType[5] SenderType[0] SenderName[Landing]    
Feb 11 17:07:56 [8064][8082] ssnotify.cpp:442:Send(): Send notification by mail: EvtType[5] SenderType[0] SenderName[Landing]    
Feb 11 17:13:58 [8064][8082] ssnotify.cpp:442:Send(): Send notification by mail: EvtType[5] SenderType[0] SenderName[Landing]

【问题讨论】:

  • 你自己尝试了什么?
  • 我没试过,我用谷歌搜索过,但无法弄清楚。我对脚本/linux 很陌生
  • 您的问题太多了。您应该单独拆分它们,例如“如何从文件中获取时间”、“如何在 Bash 中比较时间”以及最后“如何在 Bash 中退出带有错误代码的进程”。

标签: bash shell


【解决方案1】:

使用tail -1 获取最后一行,然后使用awk 提取第三列(包含日期):

tail -1 your_file | awk '{print $3}'

【讨论】:

    猜你喜欢
    • 2011-04-07
    • 2017-05-23
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多