我是 crontab 新手。为什么这个 crontab 什么都不做?我希望它每分钟运行一次脚本。
1 * * * * /home/android/test.sh
如果我在 shell 中输入 /home/android/test.sh,它就可以运行,因此脚本本身也可以运行。
有人说这是重复的,但我不这么认为。据我所知,这个 crontab 应该可以工作,但实际上却不行。据我所知,1 表示每分钟一次,如果我错了,请纠正我。
这就是 test.sh 脚本的作用,简单来说:
日期 >> /home/android/date.txt
当我单独运行它时它可以工作,但它不会由 crontab 自动运行。
答案1
由于我不知道您的脚本的作用,所以它可能是有效的,但您只是看不到它的输出。要真正看到某些东西,您可以将其输出重定向到文件:
* * * * * (/home/android/test.sh > /tmp/cron-out.txt)
然后您可以检查输出是否符合您的预期。
此外,您还可以查看系统日志(某些系统有专用的日志/var/log/cron
)。
如果这也没有帮助,您可以检查执行命令的用户是否具有执行脚本、读取输入和写入输出所需的所有权限。
要每分钟执行一次脚本,您必须将其替换1 * * * *
为* * * * *
、0-59 * * * *
或*/1 * * * *
。您提供的设置只会在每小时第 1 分钟执行(例如 9:01、10:01,...)。
确保所有权限均已到位:
- 执行脚本的用户应为文件的所有者 (u),属于文件组 (g),或者应相应地设置“其他”(o) 的权限。要将用户 android 设置为文件 的所有者
sudo chown android /home/android/test.sh
。要将文件组更改为yourgroup
,您可以使用chgrp yourgroup /home/android/test.sh
(假设您的 android 用户属于 组yourgroup
)。 - 根据您想要授予用户权限的方式,您应该
sudo chmod u+rx /home/android/test.sh
(例如,将执行用户作为所有者 - 对于其他情况,将 替换u
为g
或o
)。 - 为用户创建一个 crontab
android
。可以由android
用户自己执行crontab -e
,也可以由其他任何管理用户执行sudo crontab -u android -e
。