![cronjob [ -x /usr/lib/php5/sessionclean ] 返回未找到命令](https://linux22.com/image/153817/cronjob%20%5B%20-x%20%2Fusr%2Flib%2Fphp5%2Fsessionclean%20%5D%20%E8%BF%94%E5%9B%9E%E6%9C%AA%E6%89%BE%E5%88%B0%E5%91%BD%E4%BB%A4.png)
我在 Debian 8 机器上运行 PHP 5.6,因此有一个以 root 身份运行的 cronjob 来清理会话数据:
09,39 * * * * root [ -x /usr/lib/php5/sessionclean ] && /usr/lib/php5/sessionclean
直到上周我开始收到有关此 cronjob 的邮件时才知道我有这个 cronjob ,上面写着:
/bin/sh: 1: root: not found
当我尝试运行上述命令时,以“-x”开头的命令失败:
-bash: -x: command not found
-x 是什么意思
[ -x /usr/lib/php5/sessionclean ]
意思是?知道为什么我收到此错误/邮件吗?
答案1
除非您使用系统范围的 crontab /etc/crontab
,否则没有用户字段:
示例用户 crontab 文件:
# Edit this file to introduce tasks to be run by cron.
...
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
正如您所看到的,该user
字段丢失了。
测试-x
文件是否/usr/lib/php5/sessionclean
存在并且可执行。如果没有用户名字段,您也可以编写:
09,39 * * * * test -x /usr/lib/php5/sessionclean && /usr/lib/php5/sessionclean
但您的版本应该在没有用户名字段的情况下也能正常工作。