问下在crontab中执行命令的问题

2014 年 1 月 20 日
 beric
以下是crontab的配置
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
# run-parts
48 * * * * /alidata/server/php/bin/php /alidata/task/test.php

/alidata/server/php/bin/php /alidata/task/test.php 这句为什么会不执行,而用SSH登陆执行就能,想问下CRONTAB配置需要注意哪些问题?
4934 次点击
所在节点    问与答
17 条回复
ijse
2014 年 1 月 20 日
好多环境变量会没有,执行下/etc/profile文件试试
randal
2014 年 1 月 20 日
打下日志就知道了
macdino
2014 年 1 月 20 日
看执行权限
awanabe
2014 年 1 月 20 日
我调试的时候..设置接下去1分钟, 然后把 log >> 输出到一个文件...
就可以知道哪里出问题了
yangg
2014 年 1 月 20 日
环境变量
yangg
2014 年 1 月 20 日
还有当前目录,
beric
2014 年 1 月 20 日
@ijse
@randal
@macdino
@awanabe
今天整了一天,权限啊,目录啊,都CHECK过了。日志的话看crontab的日志发现在启动时会有这句LOG: crond[14363]: (CRON) bad username (/etc/crontab)。不知道为什么会这样。看别人写的也是这样写的。然后我放在SHELL 脚本里也不能执行:即:php /alidata/task/test.php 也没任何报错什么的。(我是这样加的php /alidata/task/test.php >> test.log)就是不跑这句。然后其它我手动执行:php xxxx或那个脚本.sh也都是能跑的……真不知道还有哪里有问题了
YouXia
2014 年 1 月 20 日
试下crontab -u root -e root这个为对应的用户名。
winix
2014 年 1 月 20 日
"bad username" 多明确的错误提示。
命令前少了用户名
beric
2014 年 1 月 20 日
@winix 48 * * * * /alidata/server/php/bin/php /alidata/task/test.php
这样也少用户名?那应该怎样写呢?
shiny
2014 年 1 月 20 日
@beric 很清楚了嘛,
格式是:
* * * * * user-name command to be executed
所以你的可以改成
48 * * * * root /alidata/server/php/bin/php /alidata/task/test.php

也可以把 root 换成其他用户
beric
2014 年 1 月 20 日
@YouXia 好像也木有用
beric
2014 年 1 月 20 日
@shiny 是哦,但是这种写法参照网上的都要把ROOT去掉,如果不去掉反而会报这样的错误,但我刚才试了好像是OK,但是PHP还是不能执行……
julyclyde
2014 年 1 月 21 日
系统crontab带用户名字段;用户crontab不带
beric
2014 年 1 月 22 日
@julyclyde 啊,怎么分用户和系统的?
julyclyde
2014 年 1 月 22 日
@beric /etc/crontab和/etc/cron.d/* 是系统的;用户的是crontab命令编辑的那个,保存在/var/spool/cron/下面
man 5 crontab
beric
2014 年 1 月 22 日
@julyclyde 好的,谢谢,之前一直没有这样了解过, 我一般都是直接编辑 /etc/crontab 这个来使用的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/97717

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX