cronjob [ -x /usr/lib/php5/sessionclean ] 返回未找到命令

cronjob [ -x /usr/lib/php5/sessionclean ] 返回未找到命令

我在 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

但您的版本应该在没有用户名字段的情况下也能正常工作。

相关内容