【问题标题】:Crontab - simple echo not runningCrontab - 简单的回显没有运行
【发布时间】:2015-05-05 13:14:30
【问题描述】:

我有这样的情况: 我想在 linux 服务器上使用 crontab 安排作业。我不是超级用户,所以我只编辑(使用 crontab -l,编辑器 vim)我的 crontab 文件。为了测试,我放在那里:

* * * * * echo asdf

并且作业没有运行。是否需要重启服务器?或者也许是一些管理员的举动?

【问题讨论】:

  • 检查您的电子邮件。 cron 作业的输出不会发送到您的终端,因为 crond 不知道您的终端在哪里。根据您的系统配置,通常会通过电子邮件将其发送给所有者(这可能会也可能不会)。 man cron 了解更多信息。

标签: linux cron scheduling


【解决方案1】:

可能是这样,cron 作业将在它们自己的 shell 中运行。所以你不能指望在你的控制台上看到asdf

你应该尝试的是

* * * * * echo asdf > somefile_in_your_home_directory_with_complete_path.log

接下来通过tail检查文件:

tail -f somefile_in_your_home_directory_with_complete_path.log

如果不是,请检查 cron 守护进程本身是否正在运行或已关闭:

# pgrep crond

# service crond status

【讨论】:

  • 你能告诉我 pgrep crond 的输出应该是什么吗?在运行 ps ax | 之后我什么也没得到grep cron 我可以看到 /usr/sbin/cron 正在运行。可以吗?
  • 你应该看到 cron 守护进程的 pid -- crond
  • 你有没有得到一个针对/usr/sbin/cron 的 pid 以及日志文件呢,它是否包含 asdf
  • 是的,日志文件确实包含 asdf。非常感谢。
  • 我建议你使用 * * * * * echo date -- cron >> crontest.log 来跟踪所有消息和检查时间
【解决方案2】:

对我来说* * * * * /bin/echo text > file 不起作用...我不知道为什么,特权和一切都已设置。 (当我作为特定命令执行此命令时,它运行正常 root 用户,只是为了澄清这一点。) 这可以通过在我的示例中注入路径PATH=$PATH:/bin 来解决。

而不是* * * * * echo text > file 工作正常,可能是路径问题。

希望我能帮上忙

【讨论】:

  • echo 是 sh 内置的,默认的 crond shell。它不在 bash 中。
【解决方案3】:

如果你想在你的 shell 上回显一些东西,你可以使用 wall:

* * * * * wall <<< "Hello from cron"
* * * * * echo "Hello from cron" | wall

这两行基本一样,选择你喜欢的就行了。
顺便说一句,请注意 wall 会将您的消息发送给当前连接的每个用户。

【讨论】:

    猜你喜欢
    • 2014-12-02
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 2014-08-31
    • 2015-08-18
    • 2012-10-28
    相关资源
    最近更新 更多