【问题标题】:Read last line of file after the file was modified文件修改后读取文件的最后一行
【发布时间】:2020-05-22 10:41:24
【问题描述】:

我在 Linux Ubuntu 中读取文件的最后一行时遇到问题。 我有一个名为 auth.log 的文件,我正在尝试在添加新行后的最后一行(修改文件后)读取它。

我知道我需要使用 tail -1 /var/log/auth.log 获取最后一行,但我不知道每次修改文件时如何检查文件。

阅读最后一行后,我需要检查它是否包含“登录”字样,如果是,我需要通过电子邮件发送此行。据我所知 grep 需要与 mail 命令一起使用。

任何帮助都会很棒,谢谢!

【问题讨论】:

    标签: linux bash email terminal tail


    【解决方案1】:

    也许这样的事情对你有用,使用tail -f 持续监控文件:

    while read -r; do
      echo "$REPLY" | mail your@email.address
    done < <(tail -f /var/log/auth.log | grep --line-buffered login)
    

    但这将在后台连续运行,而不是作为 cron 作业或其他东西。

    【讨论】:

    • 这很好用,但没有发送邮件,我只收到信息“您在 /var/mail/root 中有新邮件有什么办法解决这个问题吗?
    • 您需要在本地系统上设置邮件服务器或转发器,或者告诉mail 如何联系您选择的 SMTP 服务器。这是一个完全不同的话题。
    猜你喜欢
    • 2016-07-30
    • 2012-07-22
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    相关资源
    最近更新 更多