LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 979|回复: 4

请叫一个crontab的问题。

[复制链接]
发表于 2005-6-15 14:11:53 | 显示全部楼层 |阅读模式
请问:直接运行脚本和在crontab中运行脚本有什么区别?

我写了一个Expect脚本,直接在当前目录下执行,可以正常工作,在crontab中设置定时执行,就无法正常执行了。这是执行时的输出:
。。。。。。。。。。。。。。。。
xyz/db/representations
xyz/db/strings
xyz/db/uuids
xyz/db/log.0000000002
xyz/db/log.0000000003
xyz/format
spawn scp -P 8888 /tmp/svn_bak.tar.gz lwei@192.168.2.204:/home/lwei/backup^M
lwei@192.168.2.204's password:

好像密码无法传送过去。
请指教。。。谢谢~~~
 楼主| 发表于 2005-6-15 17:19:15 | 显示全部楼层
问题已解决,环境变量没设置好。
#vi /root/profile,加入以下两行:
SHELL=/bin/bash:/usr/bin/expect
export SHELL
回复 支持 反对

使用道具 举报

发表于 2005-6-15 22:17:33 | 显示全部楼层
Post by floriawll
问题已解决,环境变量没设置好。
#vi /root/profile,加入以下两行:
SHELL=/bin/bash:/usr/bin/expect
export SHELL


建议: cron的环境变量应在/etc/crontab中设定。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-16 10:22:16 | 显示全部楼层
Post by yongjian
建议: cron的环境变量应在/etc/crontab中设定。

我的crontab是这样的:

SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
MAILTO=root
30 17 * * *    root  /bin/svnbak

      我试过改为:SHELL=/bin/sh:/usr/bin/expect. 但是,不能正常工作,只是完成在本机上的文件压缩,压缩文件并没有传到另一台机子上。
      如果改成SHELL=/bin/bash:/usr/bin/expect,就可以正常工作了。但是,这样改会不会影响到以后别人用crontab定时设置别的脚本呀?
回复 支持 反对

使用道具 举报

发表于 2005-6-16 11:36:34 | 显示全部楼层
Post by floriawll
我的crontab是这样的:

SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
MAILTO=root
30 17 * * *    root  /bin/svnbak

      我试过改为:SHELL=/bin/sh:/usr/bin/expect. 但是,不能正常工作,只是完成在本机上的文件压缩,压缩文件并没有传到另一台机子上。
      如果改成SHELL=/bin/bash:/usr/bin/expect,就可以正常工作了。但是,这样改会不会影响到以后别人用crontab定时设置别的脚本呀?


Linux下应该不会,本身/bin/sh是call /bin/bash的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表