【问题标题】:Crontab not shows shell script containing cat commandcrontab 不显示包含 cat 命令的 shell 脚本
【发布时间】:2020-10-29 15:07:23
【问题描述】:

这是我的 crontab 代码

* * * * sh /tmp/date_insert.sh

和 /tmp/date_insert.sh

date >> /tmp/date.txt
/usr/bin/cat(or just cat) /tmp/date.txt

每一分钟,date.txt 中都添加了一个很好的日期,但是 cat date.txt 命令什么也不显示。

如何在终端屏幕上每分钟显示 date.txt 的内容?

【问题讨论】:

  • “什么都不显示”是什么意思?您的 cron 作业写入标准输出,这意味着 cron 通过邮件将此输出发送给您。您是否正确设置了与 cron 一起使用的邮件?

标签: linux shell cron


【解决方案1】:

你提出的要求很奇怪。

如何在终端屏幕上每分钟显示/tmp/date.txt的内容?

您希望查看此文件多久?一秒,恒定,一纳秒……?

Cron 作业是定期运行的脚本,但并非旨在进行实时终端交互。如果要进行实时终端交互,则必须执行其他操作。

cron-jobs 生成的输出,在这种情况下是命令/usr/bin/cat /tmp/date.txt 的输出,将发送到您的用户帐户电子邮件。您可以使用mail 命令检查它。尽管如此,如果您想检查正在更新的文件,使用tail -f 命令会更容易。只需输入

$ tail -f /tmp/date.txt

这将在每次更新 /tmp/date.txt 时更新。

就个人而言,我会将您的 cronjob 更改为以下内容:

# Example of job definition:
# .----------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7)
# |  |  |  |  |
# *  *  *  *  *   command to be executed
  *  *  *  *  *   date >> /tmp/date.txt
  *  *  *  *  *   /path/to/script.sh >> /tmp/date.txt

script.sh

#!/usr/bin/env bash
date

Cronjobs 并不难,但有时会令人费解。修复错误通常很容易,但您需要知道如何去做。为此,我建议阅读以下页面:

【讨论】:

    猜你喜欢
    • 2023-02-06
    • 2014-10-11
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多