为什么我的 cron.d 每分钟作业不运行?

Tra*_*ggs 35 linux cron

我扔了一堆飞镖,试图让我的 python 脚本每分钟执行一次。所以我想我会把它简化为每分钟做一次“可能工作的最简单的事情”(我正在运行 debian/testing)。

我在以下位置创建了一个单行文件/etc/cron.d/perminute

* * * * * /bin/touch /home/me/ding_dong
Run Code Online (Sandbox Code Playgroud)

它由 root 拥有,并且是可执行的(不确定其中任何一个是否重要)。然后我做了:

sudo service cron reload
Run Code Online (Sandbox Code Playgroud)

然后坐下来,ls -ltr在我的主目录 ( /home/me) 中一次又一次地开始运行。但是我的 ding_dong 文件从来没有出现过。我知道如果我做了一个sudo /bin/touch /home/me/ding_dong,它会立即出现。

显然在这里遗漏了一些愚蠢的东西。

nog*_*erl 48

在您的示例中,在添加 cron 配置时/etc/cron.d//etc/crontab您必须添加命令应该在哪个上下文中运行的用户名

* * * * * root /bin/touch /home/me/ding_dong

只是我的一个提示:您不必ls -ltr一次又一次地开始运行,只需使用watch -n 5 "ls -ltr"它就会每 5 秒运行一次命令(或通过将 5 替换为您想要的任何其他值)。

  • 这让我朝着正确的方向前进。这是一个令人头疼的时刻。我修复了它,但它仍然不起作用。在阅读`man cron` 稍微慢一点,并特别注意`DEBIAN 特定` 部分后,我注意到文件必须**NOT** 是组或其他可写的。我曾经在沮丧中启用了这一点。 (10认同)