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 脚本从日志中获取过去一小时的异常 的相关文章

  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced
  • 如何使用Gson仅从Json反序列化某些特定字段?

    我有以下 JSON 字符串 channel bvmt initValues data value instrumentIds TN0007250012 TN0007500010 instruments mnemonic ADWYA marc
  • 在 bash 中使用单个命令为 shell 变量分配默认值

    我对 bash 3 00 shell 脚本中的变量进行了大量测试 如果未设置变量 则它会分配默认值 例如 if z VARIABLE then FOO default else FOO VARIABLE fi 我似乎记得有一些语法可以在一行
  • Grep 和 Python

    我需要一种通过 Unix 命令行中的正则表达式使用 grep 搜索文件的方法 例如 当我在命令行中输入 python pythonfile py RE file to be searched 我需要正则表达式 RE 在文件中搜索并打印出匹配
  • shell脚本中的\r字符

    我在尝试执行 shell 脚本时收到以下错误 r command not found line 2 请提出同样的解决方案 以下是脚本中使用的初始行 bin sh if lt 1 then echo ERROR Environment arg
  • C程序调用shell脚本

    我有一个小型 C 程序 调用 shell 脚本 myScript sh 我得到的 ret 值为 256 请帮助我了解系统调用出了什么问题 int main int ret ret system myScript sh ret gt gt r
  • 如何在 shell 脚本中操作 $PATH 元素?

    有没有一种惯用的方法从类似 PATH 的 shell 变量中删除元素 这就是我想要的 PATH home joe bin usr local bin usr bin bin path to app bin and remove or rep
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • 如何使用shell脚本从json字符串中grep特定字段值[重复]

    这个问题在这里已经有答案了 下面是文件中可用的 JSON 字符串 我需要从中提取值status在 shell 脚本中 预期输出 status success 响应 json eventDate null dateProccessed nul
  • sed 错误“未终止的 's' 命令”故障排除

    我正在构建一个script https stackoverflow com questions 4036832 replacing a specific term in an xml file其中 它将用文件夹路径替换 XML 文件中的模式
  • C# 中的编译器

    我正在寻找一个可定制的解析器和 或词法分析器 它可以让我在 C 中构建自定义语法检查器 本质上 用户将输入一行代码 自定义 语法检查器将能够响应是否编写正确 That s Irony http irony codeplex com 请务必阅
  • 如何查看正在运行的 tcsh 版本?

    如何查看我的 UNIX 终端中运行的 tcsh 的当前版本 看着那 这version多变的 echo version tcsh 6 14 00 Astron 2005 03 25 i386 intel linux options wide
  • 使用正则表达式模式查找 -name 并使用 cp 替换文件名

    目前我正在使用该命令cron复制 data从源到目标路径 find source path name data exec cp target path 源码结构为 source path category1 001 data source
  • C# 是否有像 Java 那样的字符串分词器?

    我正在做简单的字符串输入解析 我需要一个字符串标记器 我是 C 新手 但已经编写过 Java 程序 因此 C 应该有一个字符串标记生成器似乎很自然 可以 它在哪里 我该如何使用它 你可以使用String Split 方法 http msdn
  • 分叉/多线程进程|重击

    我想让我的代码的一部分更加高效 我正在考虑让它分叉成多个进程 并让它们一次执行 50 100 次 而不是只执行一次 例如 伪 for line in file do foo foo2 foo3 done 我希望这个 for 循环运行多次 我
  • 当 grep "\\" XXFile 我得到“尾随反斜杠”

    现在我想查找是否有包含 字符的行 我试过grep XXFile但它暗示 尾随反斜杠 但当我尝试时grep XXFile没关系 谁能解释一下为什么第一个案例无法运行 谢谢 区别在于 shell 处理反斜杠的方式 当你写的时候 在双引号中 sh
  • _实际_ Twitter 主题标签格式?不是你的正则表达式,也不是他的代码——真正的代码?

    更新 如果可以的话 请使用 Twitter 的实体 他们为您以及其他项目找到了解决方案 我的情况是 我只有没有实体的推文和所有额外的元数据 我花了我认为不合理的时间试图找到actual主题标签的格式 据我搜索得知 Twitter 尚未发布任
  • sh / Bash shell 脚本中 !# (bang-pound) 的含义是什么?

    我想了解这个 Scala 脚本是如何工作的 usr bin env bash exec scala 0 object HelloWorld def main args Array String println Hello world arg
  • 用于解析差异的 PHP 类

    我正在编写一个 PHP 脚本 需要解释 Git 创建的 Diff 文件 如果我想解析 Diff 文件并基本上以完全不同的格式打印它 我应该如何进行 我遇到过Text DiffPEAR 库 但该库仅创建 Diff 本身 或者更确切地说 它只需
  • grep 的贪婪行为

    我认为在正则表达式中 贪婪 适用于量词而不是整个匹配 然而 我观察到 grep E color auto a ab lt printf aab returns aab而不是aab 这同样适用于 sed 另一方面 在 pcregrep 和其他

随机推荐

  • 如何检查 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