CSH crontab问题
同一台机器一个用户a可以执行crontab程序,另一个用户b不能执行crontab。
两个用户的shell都是csh,/var/adm/cron/cron.allow中已经配置b用户执行crontab权限。
b用户的家目录下的.profile文件和/etc/passwd文件确认正确。
b用户crontab -l如下:
58 * * * * /tmp/npm.sh 1>/tmp/npm.log 2>&1
运行报错信息:stty: : Not a typewriter
NPM_HOME: Undefined variable.
npm.sh脚本内容如下:
#!/usr/bin/csh
echo 000
哪位高手帮忙支招,谢谢!
[ 本帖最后由 lsnow8624 于 2009-12-11 15:51 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
/usr/bin/echo
查到原因了,b用户的$HOME/.chsrc中的endif位置不对。
谢谢各位回复。
奇怪的是正常登陆的时候没有报错,crontab的时候报错。
[ 本帖最后由 lsnow8624 于 2009-12-13 17:21 编辑 ]
# man echo
echo(1) echo(1)
NAME
echo - echo (print) arguments
SYNOPSIS
echo [arg] ...
DESCRIPTION
echo writes its arguments separated by blanks and terminated by a
new-line on the standard output. It also understands C-like escape
conventions; beware of conflicts with the shell's use of :
echo的路径是:?
我用echo的意思是不调用任何环境变量,测试是否还会报NPM_HOME没有设置。crontab执行时默认只调用$home $LOGNAME $PATH $SHELL有限的几个环境变量。我没有调用任何自定义环境变量的情况下为什么还报NPM_HOME没有设置呢?奇怪啊。
另回复5楼
NPM_HOME和B用户的$HOME是一致的,且A、B用户的$HOME权限相同。奇怪的是A用户的crontab可以执行,新建一个C用户也可以。只有B用户的crontab执行不了。同时测试过将A用户$/HOME/.profile文件覆盖至B用户$/HOME/.profile,测试不成功。
LS的建议很有道理,好久没搞SHELL,忘了/
把echo命令的路径带全
NPM_HOME: Undefined variable.
这个不是报错么,好好查下用户B的home目录,看权限是否设置正确。
脚本非常简单,没有调用报错的环境变量,而且试过在脚本里定义环境变量也不可以。b用户手工可以执行该脚本。
打过hp 800,搞不定呢。
[ 本帖最后由 lsnow8624 于 2009-12-12 11:39 编辑 ]
首先B用户能否自己执行这个sh脚本,如果可以,那就是环境变量设置方面的问题了。
不会,顶一下