我在Mac OS终端上创建了cron,这是代码:
home.cron
的内容:
* * * * * /users/username/desktop/forTrump/script.sh
然后我这样运行:
crontab home.cron
然后我收到了这个错误:
“home.cron”:0:坏分钟crontab:crontab文件中的错误,无法安装
这是上面打开的shell文件,我测试过,这可以通过从os终端执行./script.sh
来完美运行,但我似乎无法在cron
中运行它而没有得到该错误
#!/bin/sh
python /Users/username/Desktop/forTrump/test.py
我已经确保没有换行导致错误的分钟错误,提前感谢您的帮助。
答案 0 :(得分:5)
我今天遇到过类似的问题: " /tmp/crontab.vjQAiZ" 1L,14C写 crontab:安装新的crontab " /tmp/crontab.vjQAiZ":0:糟糕的一分钟 crontab文件中的错误,无法安装。 您想重试相同的编辑吗?
即使我尝试在我的crontab列表中添加ABSOLUTELY正确的条目,也会出现相同的错误。 像往常一样,我有leart google建议。但是notihng帮助了。
我的解决方案:100%使用/ var / log /目录。 看起来cron无法更新自己的日志,因此在您希望保存更改时会写出类似的错误。
当我删除额外的日志文件时,问题就解决了。
祝你好运!答案 1 :(得分:2)
如果存储cron文件的卷空间不足,也会出现此错误(特别是如果错误指示无效分钟位于第0列)。
答案 2 :(得分:1)
根据crontab.guru
,* * * * *
和*\1 * * * *
基本上是相同的,尽管您可能想要尝试替代方案,以防您的系统不喜欢其中一个。
但是,在您发布的home.cron
中,路径错误。
这:
* * * * * /users/username/desktop/forTrump/script.sh
应该是:
* * * * * /Users/username/Desktop/forTrump/script.sh
但是,如果脚本需要提升权限,那么您将需要使用root crontab,并且由于在命令之前添加了一个用户列,所使用的行略有不同:
* * * * * root /Users/username/Desktop/forTrump/script.sh
要以root身份安装该脚本,请先切换到root,如下所示:
sudo su
接下来是:
crontab home.cron
同时看到您使用的是Mac OS X,请确保home.cron
中的行仅以\n
而不是\r
或\n\r
这个问题最常发生的原因是你正在使用文本编辑器,例如pico,当它到达某个列位置时,通过添加换行来伪造自动换行。
Crontab使用换行符(换行符)分隔作业。每个工作占一行。因此,如果crontab在行的第一列中看到除整数之外的任何内容,则会抛出“坏分钟”错误,因为分钟参数是crontab遇到的第一个。
简单的解决方法是删除pico / your * nix编辑器添加的换行符。最简单的方法是将光标放在每个额外行的第一个字符上,然后点击退格键,直到该行与前一个行连接起来,并重复该过程,直到整个cron命令在一行上。
答案 3 :(得分:1)
就我而言,我在 docker 容器中遇到了这个错误。错误的原因是文件底部有一个空行,删除了问题就解决了。
答案 4 :(得分:0)
你的cron工作究竟应该什么时候运行 - 每一分钟?
m h dom mon dow command
*/1 * * * * /users/username/desktop/againstTrump/script.sh