【发布时间】:2015-04-25 22:56:02
【问题描述】:
我的大笨蛋,没有 grok cron,请你修复大脑。
从 pi 主目录,我输入:
crontab -e
我在文件的底部添加了一行:
*/5 * * * * date "+(0 6) %H:%M %Z" >> /home/pi/scripts/scripts.log
根据我在网上翻腾时在别处阅读过的说明;我的意思是每五分钟系统日期将打印到scripts.log。在此之后我确实添加了一个空行,保存并退出 nano,并收到消息“crontab:正在安装新的 crontab”。
我等了,什么也没发生。我进入raspi-config,设置时区,然后重新启动,尽管这并不重要,因为它应该每 5 分钟运行一次,而不是在特定时间运行。是的,我创建了一个脚本目录......在第三次尝试之后......但仍然没有。命令行无输出,脚本目录无任何内容,无错误消息。
很抱歉重新讨论之前介绍的内容,但我所阅读的主题都是在某个特定项目的上下文中,我还没有足够的知识来分离出我正在寻找的信息。我只是想要一些东西,任何东西,使用 cron 来工作,然后我会考虑下一件要搞砸的事情。
我非常感激和空洞的承诺给你买啤酒。
编辑:感谢您转介到另一个线程,但现在我更加困惑了。我应该运行什么脚本?命令是否必须是某个文件的一部分,而不是像在命令行上键入一样直接执行? (我希望这是有道理的。)以env >/tmp/test.sh.dummy 开头的行应该在带有 date 命令的脚本文件中,还是 crontab 文件的一部分?
编辑 2:好的,所以我已经在网上进行了几个小时的 RTFM,现在我知道 cron 只运行脚本。我一直在假设它是一种“批处理文件”,其中的命令将与在命令行中键入并以相同的方式执行一样。
让我们忘记该死的“约会”吧,我只想让它发挥作用。我在命令行输入:
echo "This is a test."
这和我预期的一样。然后我在 pi 目录的 scripts 目录中创建了一个 shell 文件,名为 firstscript.sh。内容如下:
#!/bin/bash
echo "This is a test."
在命令行中,我输入:
sudo chmod +x /home/pi/scripts/firstscript.sh
在 cron 表中,我输入了以下行:
* */2 * * * /home/pi/scripts/firstscript.sh
...末尾有回车。这是所有注释行之后。文件开头没有#!(hashbang?),所以我没有添加。保存了这个,得到了回复crontab: installing new crontab.
如果我理解正确,它应该每两分钟运行一次。等了10分钟。重新启动,又等了 10 个。尝试了同样的方法,将 crontab 行中的命令更改为 ./firstscript.sh。布普库斯。
请原谅我的啰嗦,我只是对正在发生的事情知之甚少,无法知道哪些细节是相关的。
【问题讨论】:
-
你被误导了。 cron 可以运行任何可以从命令行运行的命令;它不一定是脚本。运行
date命令应该可以正常工作。它在受限环境中运行命令,包括基本的$PATH,可能不包括$HOME/bin——但这对于date命令无关紧要。cron守护程序没有运行,或者重定向输出时出现问题,或者您的系统有一个不支持该选项的date命令。 -
/home/pi/scripts目录是否存在?如果在 shell 提示符下输入date "+(0 6) %H:%M %Z" >> /home/pi/scripts/scripts.log会发生什么? -
编辑中的
* */2 * * * /home/pi/scripts/firstscript.sh行似乎每两小时 运行一次,而不是每两分钟运行一次。 (此外,第一个星号在您的帖子中被解释为项目符号)。 -
如果发布的答案之一解决了您提出的问题,请考虑通过单击复选标记接受它。
标签: cron raspberry-pi