我的 crontab 有问题,它不执行我的 shell 脚本。
crontab -l :
01 * * * * login sh ~/delete.sh
Run Code Online (Sandbox Code Playgroud)
通常它应该每分钟执行一次delete.sh,但事实并非如此。
系统日志中没有任何内容:
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.
Run Code Online (Sandbox Code Playgroud)
PS:我尝试过以 root 和普通用户身份运行它,但两种情况都没有运气。
你期待着这个:
01 * * * * login sh ~/delete.sh
Run Code Online (Sandbox Code Playgroud)
每分钟运行该命令。事实上,它只在每小时过一分钟运行。
改成这样:
* * * * * login sh ~/delete.sh
Run Code Online (Sandbox Code Playgroud)
针对评论中提出的问题:
Cron 作业的运行有限制$PATH,但/bin肯定会在其中$PATH,因此无需替换sh为/bin/sh。
无需sh显式调用。只需确保它~/delete.sh具有正确的shebang (#!/bin/sh或#!/bin/bash) 并且它是可执行的 ( chmod +x ~/delete.sh),您就可以直接调用它。
我不知道你为什么有这个login命令。尝试从 cron 作业登录是没有意义的。无论如何,login不将命令作为参数。
如果login是用户名而不是命令,请记住 crontab 条目有两种不同的语法。在正常语法中,每行由 5 个字段组成,指定作业何时运行,后跟命令及其参数。系统crontab条目在时间规范和命令之间添加用户帐户名。man 5 crontab了解详情。在正常使用中,您应该使用普通用户语法并使用crontab命令管理您的 crontab;除非绝对必要,否则不要编辑/etc/crontab或编辑以下文件。/etc/cron.*
| 归档时间: |
|
| 查看次数: |
1343 次 |
| 最近记录: |