【问题标题】:How do I pass the tail of a log file to a command?如何将日志文件的尾部传递给命令?
【发布时间】:2015-07-14 15:24:01
【问题描述】:

我有很多长时间运行的进程,我使用这个命令在整个脚本的不同点给我发短信,并让我知道什么时候完成了:

curl http://textbelt.com/text -d number=<PHONE NUMBER> -d "message=Doneskiiz"

我想在消息中包含一个日志文件的尾部,而不是这个基本消息,以便我可以看到最后几行来了解它是否成功并查看结果。如果可能的话,我希望包含当前时间(或在第二条消息中)。

【问题讨论】:

    标签: bash tail


    【解决方案1】:

    步骤:

    a) 执行 "date" 以检索当前日期

    b) 执行“tail -n nnn”检索“nnn”日志文件的最后几行

    c) 使用“--data-binary @file”或“--data-binary @-”或“-F field=@filename”执行“curl”以发布以前的信息。

    你可以在curl: pass a named parameter from stdin看到一个类似的例子:

    tail -n 20 my.log | curl -d date="$(date)" -d number="555123" -F log=@- "http://somewhere" 
    

    【讨论】:

    • 您能否包括该行的其余部分并显示 tail 的输出如何以“message=”结束?
    【解决方案2】:

    我不知道您是否可以使用 tail 和管道来做某事,但您可以使用 inotify 库来做某事。

    看看 iwatch,它可以在你的文件被修改并运行你的脚本时触发一个事件。

    阅读本文。

    http://arkanis.de/weblog/2014-02-16-iwatch-run-a-command-when-a-file-changes

    【讨论】:

      猜你喜欢
      • 2016-07-20
      • 2013-06-15
      • 2019-03-23
      • 2020-03-14
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      相关资源
      最近更新 更多