Shell 脚本从日志中获取过去一小时的异常

2024-02-22

我正在开发脚本,该脚本将 grep 最近一小时的日志并检查任何异常并向Solaris 平台发送电子邮件。

我做了以下步骤

grep -n -h date +'%Y-%m-%d %H:%M' test.logs

上面的命令给了我行号,然后我执行以下操作

tail +6183313 test.log | grep 'exception'

样本日志

2014-02-17 10:15:02,625 | WARN  | m://mEndpoint | oSccMod | 262 - com.sm.sp-client - 0.0.0.R2D03-SNAPSHOT | 1201 or 101 is returned as exception code from SP, but it is ignored
2014-02-17 10:15:02,625 | WARN  | m://mEndpoint | oSccMod | 262 - com.sm.sp-client - 0.0.0.R2D03-SNAPSHOT | SP error ignored and mock success returned
2014-02-17 10:15:02,626 | INFO  | 354466740-102951 | ServiceFulfill | 183 - org.apache.cxf | Outbound Message

请建议任何更好的替代方案来执行上述任务。


与 GNUdate,可以使用:

 grep "^$(date -d -1hour +'%Y-%m-%d %H')" test.logs | grep 'exception'| mail -s "exceptions in last hour of test.logs" ImranRazaKhan

上面的第一步是选择过去一小时的所有日志条目。这是用完成的grep通过查找与一小时前匹配的年月日和小时开头的所有行:

grep "^$(date -d -1hour +'%Y-%m-%d %H')" test.logs

管道中的下一步是从这些行中选择有异常的行:

grep 'exception'

管道的最后一步是发送邮件:

mail -s "exceptions in last hour of test.logs" ImranRazaKhan

上述内容将邮件发送到 ImranRazaKhan(或您选择的任何电子邮件地址),主题行为“test.logs 最后一小时的异常”。

拥有的便利-d选项date不应被低估。从当前小时中减去 1 似乎很简单,但是,如果当前小时是中午 12 点,那么我们需要调整日期和小时。如果该时间是该月第一天的中午 12 点,我们还必须更改月份。今年也是如此。当然,闰年期间的二月需要特别考虑。

将以上内容调整到 Solaris:

考虑三种情况:

  1. 在 Solaris 11 或更高版本下,GNUdate实用程序可在/usr/gnu/bin/date。因此,我们只需要指定一个路径date:

     grep "^$(/usr/gnu/bin/date -d -1hour +'%Y-%m-%d %H')" test.logs | grep 'exception'| mail -s "exceptions in last hour of test.logs" ImranRazaKhan
    
  2. 在 Solaris 10 或更早版本下,可以下载并安装 GNU date

  3. 如果 GNU 日期仍然不可用,我们需要找到另一种方法来查找一小时前的日期和时间。最简单的解决方法可能是选择比您所在时区晚一小时的时区。如果该时区是香港,则使用:

     grep "^$(TZ=HongKong date +'%Y-%m-%d %H')" test.logs | grep 'exception'| mail -s "exceptions in last hour of test.logs" ImranRazaKhan
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Shell 脚本从日志中获取过去一小时的异常 的相关文章

  • 如何 grep 文件中不区分大小写的字符串?

    我有一个文件file1其结尾为Success OR success 我想要grep为了这个词success以一种不区分大小写的方式 我写了以下命令 但它区分大小写 cat file1 grep success 我怎样才能改变它 以便它ret
  • ANTLR4 在导入时找不到语法

    我正在尝试将 ANTLR4 语法拆分为多个文件 以便我可以更轻松地测试它们 我在 java 项目中使用 gradle 作为构建工具 两种语法都单独正确编译 但是当我将导入添加到我的主语法中时 我收到下一个编译错误 错误 110 kaneko
  • 何时用引号将 shell 变量括起来?

    我应该或不应该在 shell 脚本中用引号括住变量吗 例如 下列说法正确的是 xdg open URL eq 2 or xdg open URL eq 2 如果是这样 为什么 一般规则 如果它可以为空或包含空格 或实际上任何空格 或特殊字符
  • 使用 grep 和正则表达式来过滤匹配项

    我正在尝试将 grep 与 v 一起使用进行反向匹配 并使用 e 进行正则表达式 我无法正确理解语法 我正在尝试类似的东西 tail f logFile grep ve string one string two 如果我这样做它不会过滤 如
  • 在ubuntu中打开spyder

    我想在ubuntu中打开spyder Python IDE 通常我会在 shell 中编写 spyder 它会打开spyder IDE 现在 当我在shell中编写spyder时 它只是换行 什么也没有发生 类似于按 enter 我如何找回
  • 从 shell 查找不包含特定注释的 XML 文件

    我想搜索 awk grep sed 几个 XML 文件 pom xml 文件 跳过某些文件夹 而且 第一个条件是它们必须包含标签
  • 退出代码大于 255 — 可能吗?

    如果是 在哪个操作系统 shell 或其他操作系统上 考虑以下 Java 程序 我使用 Java 只是作为示例 任何语言都适合这个问题 这更多地与操作系统有关 public class ExitCode public static void
  • 解析 (yyyy-MM-dd) 格式的字符串日期

    我有一个 2013 09 18 形式的字符串 我想将其转换为 java util Date 我正在做这个 SimpleDateFormat sdf new SimpleDateFormat yyyy MM dd Date converted
  • 类似 jq 中的 sql join

    我有以下 json id 1 type folder title folder 1 id 2 type folder title folder 2 id 3 type item title item 1 folder 1 id 4 type
  • 未排序模式的 boost::Spirit 语法

    我有一个需要解析的模型模式的一部分 可以说它看起来像下面这样 type Standard hostname x y z port 123 属性是 元素可能看起来无序 属于架构一部分的所有元素都必须出现 而不是其他元素 所有元素的综合属性都进
  • 在 C# 中遍历 ANTLR AST 的教程?

    有人知道在 C 中遍历 ANTLR 生成的 AST 的教程吗 我能找到的最接近的是this https web archive org web 20201019210638 http www manuelabadia com blog Pe
  • 在 Delphi 中使用 XML(将特定数据返回到变量)

    过去几天我一直在尝试使用 Delphi 2010 和 MSXML 我是一个极端的新手 需要一点指导 var MemoryStream TMemoryStream XMLPath String sName String XMLDoc vari
  • XSD 嵌套元素

  • 如何制作 Bash 脚本来查找项目中未使用的图像?

    如何制作一个 Bash shell 脚本 它可以识别所有 jpg gif 和 png 文件 然后识别文件夹中任何文本文件中哪些文件未通过 url href 或 src 链接 这就是我开始的 但我最终得到了与我想要的相反的结果 我不想知道引用
  • AWK:递归下降 CSV 解析器

    响应一个BASH 中的递归下降 CSV 解析器 https codereview stackexchange com questions 11727 need some advice or help with translation and
  • 使用 Boost::Spirit 解析 time_period 表达式

    我需要使用 Boost Spirit 解析以下 EBNF 表达式 period date part time part date part time part time part hours minutes seconds date par
  • 如何从 LaTeX 执行 shell 脚本?

    我正在尝试在 LaTeX 中执行以下操作 documentclass article begin document execute usr local bin my shell script sh end document 想法是执行 us
  • 在 VBA 中捕获 shell 命令的输出值?

    发现这个功能http www cpearson com excel ShellAndWait aspx http www cpearson com excel ShellAndWait aspx 但我还需要捕获 shell 的输出 有什么代
  • 执行“minikube start”命令时出现问题

    malik malik minikube start minikube v1 12 0 on Ubuntu 18 04 Using the docker driver based on existing profile Starting c
  • 帮我用 PHP 解析这个文件

    Fri Nov 27 10 00 01 EST 2009 974 12506 Fri Nov 27 11 00 01 EST 2009 988 12655 Fri Nov 27 12 00 01 EST 2009 1005 12886 Fr

随机推荐

  • 如何检查 alamofire 中的互联网连接?

    我正在使用下面的代码在服务器中发出 HTTP 请求 现在我想知道它是否连接到互联网 下面是我的代码 let request Alamofire request completeURL domainName path method metho
  • 使用Output0Buffer类时SSIS脚本转换错误

    我试图通过提供用 c 编写的脚本来帮助我们的 dba 以便他可以在他的 ScriptComponent 中使用它 我有一个输入文件 逐行处理它并在 Output0Buffer 中创建一行 如中所述 我已经编写了测试方法并且工作正常 但是在将
  • 如何使用邮递员发布对象和列表

    我在用邮递员打包的应用程序 https chrome google com webstore detail postman fhbjgbiflinjbdggehcddcbncdddomop hl en发送帖子请求 我想请求以下控制器 如何使
  • 给定的 ColumnMapping 与源或目标中的任何列都不匹配

    我不知道为什么我会遇到上述异常 请有人看看 DataTable DataTable Time new DataTable Star Schema Dimension Time DataColumn Sowing Day new DataCo
  • 在选项卡栏控制器 -> 导航控制器 -> 视图控制器的层次结构中旋转视图控制器

    我的应用程序的视图控制器层次结构设置如下 UITabBarController UINavigationController UIViewController UINavigationController UIViewController
  • 有没有 SMTP 转 HTTP 的免费服务(Email 转 POST)?

    有人向我指出了该服务smtp2web http www smtp2web com 不久前 但我一直在尝试 但似乎不起作用 还有其他人吗 有什么方法可以在红宝石中实现这一点吗 我写一封电子邮件并发送给lanceJpollard smtp2we
  • 如何在没有 SSL 的情况下接受 Web API 上的身份验证?

    我正在构建一个与以下内容非常相似的 Web API堆栈溢出 http api stackoverflow com提供 然而 就我而言 安全很重要 因为数据是私有的 我必须使用 HTTP 我无法使用 SSL 您向我推荐什么解决方案 EDIT
  • 如何根据某些正则表达式模式提取字符串的“部分”?

    在 JavaScript 中 给定一个正则表达式模式和一个字符串 var pattern this 0 9a zA Z that 0 9a zA Z var str this 12 that 34 如何返回包含以下内容的数组 12 34 以
  • 如何将 .scss 文件作为全局导入到 app.js 父文件中?

    我正在启动一个 Angular 项目 并按照以下步骤导入 scss 文件 https github com AngularClass angular starter wiki How to include SCSS in component
  • 为什么使用 ARC + NSZombieEnabled 时对象未释放

    我将我的应用程序转换为 ARC 并注意到当视图控制器被释放时 在我的视图控制器之一中分配的对象没有被释放 我花了一段时间才弄清楚原因 我在调试时为我的项目启用了 启用僵尸对象 结果证明这就是原因 考虑以下应用程序逻辑 1 用户调用actio
  • 在 3D 空间中旋转图像的一部分

    设置如下 这是一个电子商务艺术网站 其中一些绘画是画布转移 这幅画环绕画布的侧面 顶部和底部 我们拥有整幅画的高分辨率图像 但我们想要显示的是图像的准 3D 表示 您可以在其中看到画作的侧面如何环绕画布 这是我正在谈论的内容的粗略草图 我的
  • 尝试在 openSUSE 上安装 pip 时出错

    我正在尝试部署pip在我的生产服务器上 但有一个不合逻辑的错误 它尝试安装已安装的组件但没有成功 gt sudo zypper in python pip Loading repository data Reading installed
  • iText:使用 LocationTextExtractionStrategy 从 pdf 文件中提取的文本顺序错误

    我正在使用 iText 从特定位置的 pdf 文件中提取一些文本 为此 我使用 LocationTextExtractionStrategy public static void main String args throws Except
  • 实施“more”Unix实用程序命令

    我正在努力实施more命令 我想知道如果有管道我该如何理解 例如 如果我从 shell 中输入 cat file1 file2 more 我怎样才能在 more 的实现中处理这个问题 并且是实施more可以开源吗 实际上 我无法成功读取 s
  • 使用 Selenium Webdriver 测试某个元素是否获得焦点

    我真的很惊讶我在互联网上找不到使用 Selenium Webdriver 测试元素焦点的参考资料 我想检查当尝试提交表单但缺少必填字段时 焦点何时移至空字段 但我看不到任何使用 WebDriver API 执行此操作的方法 我将能够使用找到
  • 如何获取给定 ascii 值的字符

    如何获取给定 ascii 代码的 ascii 字符 例如我正在寻找一种方法 给定代码 65 将返回 A Thanks 您的意思是 A astring 或 A 一个char int unicode 65 char character char
  • 在 Python 中搜索对象列表

    假设我正在创建一个简单的类 其工作方式与 C 风格结构类似 仅保存数据元素 我试图弄清楚如何在对象列表中搜索属性等于特定值的对象 下面是一个简单的例子来说明我正在尝试做的事情 例如 class Data pass myList for i
  • Vue mousemove仅在mousedown之后

    如何仅在首先单击元素时触发鼠标移动 我正在尝试将其用于音频播放器时间线 player time bar mousedown setNewCurrentPosition event slider role slider aria valuem
  • 许可 .Net 网站 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道获得网站许可的首选方法是什么 我使用可编辑的 APSX 文件分发网站的预编译版本 后面的代码被编译到每个页面的单独 DLL 中
  • Shell 脚本从日志中获取过去一小时的异常

    我正在开发脚本 该脚本将 grep 最近一小时的日志并检查任何异常并向Solaris 平台发送电子邮件 我做了以下步骤 grep n h date Y m d H M test logs 上面的命令给了我行号 然后我执行以下操作 tail