Crontab不会执行脚本

时间:2014-07-08 16:51:50

标签: linux shell crontab

我的crontab有问题,它没有执行我的shell sript。

Crontab -l:

01 * * * * login sh ~/delete.sh

通常每分钟都应该执行delete.sh,但事实并非如此。

syslog中没有任何内容:

Jul  8 14:00:31 crontab[22307]: (login) LIST (login)
Jul  8 14:01:08 crontab[22581]: (login) BEGIN EDIT (login)
Jul  8 14:01:51 crontab[22581]: (login) REPLACE (login)
Jul  8 14:01:51 crontab[22581]: (login) END EDIT (login)
Jul  8 14:02:01 cron[15185]: (login) RELOAD (crontabs/login)
--> THAT'S ALL. 

PS:我试过以root身份和普通用户身份运行它,在任何一种情况下都没有运气。

1 个答案:

答案 0 :(得分:4)

你期待这个:

01 * * * * login sh ~/delete.sh

每分钟运行一次命令。事实上,它只在每小时过去一分钟运行。

将其更改为:

* * * * * login sh ~/delete.sh

解决评论中提出的问题:

Cron作业使用有限的$PATH投放,但/bin肯定属于$PATH,因此无需将sh替换为/bin/sh {1}}。

无需明确调用sh。只需确保~/delete.sh具有适当的shebang#!/bin/sh#!/bin/bash)及其可执行文件(chmod +x ~/delete.sh),您就可以调用直接。

我不知道为什么你有login命令。尝试从cron作业登录没有意义。在任何情况下,login都不会将命令作为参数。

如果login是用户名而不是命令,请记住crontab条目有两种不同的语法。在正常语法中,每行包含5个字段,用于指定作业何时运行,后跟命令及其参数。 system crontab条目在时间规范和命令之间添加用户帐户名。 man 5 crontab了解详情。在正常使用中,您应该使用普通用户语法并使用crontab命令管理您的crontab;除非您绝对必须,否则请不要在/etc/crontab下修改/etc/cron.*或文件。