免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4876 | 回复: 8
打印 上一主题 下一主题

执行远程主机SH脚本放入crontab后台不能正常执行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-12 10:33 |只看该作者 |倒序浏览
写了一个脚本,是关于在一台主机上telenet上另一台主机运行shell脚本的,但是放入crontab后telnet上的脚本就不能执行了,大家帮忙看看啊
脚本:my.sh
#!/usr/bin/ksh
echo "program begin" >>/log
( echo user
   sleep 2
   echo user
   sleep 3
   echo "*****"
   echo "cd /xxxc"
   echo "src_tar.sh"   
   sleep 30
   echo "cat /xxxc/c.log"
   echo "exit"
   )| telnet 138.99.16.43

用nohup my.sh &  来执行,src_tar.sh脚本可以被执行,得到相应结果,可是放在CRONTAB中就不行了
echo "cd /xxxc"
   echo "src_tar.sh"   
这两行都被跳过,cat /xxxc/c.log这个命令能执行

论坛徽章:
0
2 [报告]
发表于 2009-11-12 10:40 |只看该作者
用单引号  另外贴出crontab
最好附加sh -x 结果

论坛徽章:
0
3 [报告]
发表于 2009-11-12 10:46 |只看该作者
40 10 * * *  /my.sh >>/exec.log 2>&1
40 10 * * *  /my.sh >>/exec.log 2>&1
HP-UX xx B.11.31 U ia64 (td)
Please wait...checking for disk quotas
(c)Copyright 1983-2006 Hewlett-Packard Development Company, L.P.
(c)Copyright 1979, 1980, 1983, 1985-1993 The Regents of the Univ. of California
(c)Copyright 1980, 1984, 1986 Novell, Inc.
(c)Copyright 1986-2000 Sun Microsystems, Inc.
(c)Copyright 1985, 1986, 1988 Massachusetts Institute of Technology
(c)Copyright 1989-1993  The Open Software Foundation, Inc.
(c)Copyright 1990 Motorola, Inc.
(c)Copyright 1990, 1991, 1992 Cornell University
(c)Copyright 1989-1991 The University of Maryland
(c)Copyright 1988 Carnegie Mellon University
(c)Copyright 1991-2006 Mentat Inc.
(c)Copyright 1996 Morning Star Technologies, Inc.
(c)Copyright 1996 Progressive Systems, Inc.

Confidential computer software. Valid license from HP required for
possession, use or copying.  Consistent with FAR 12.211 and 12.212,
Commercial Computer Software, Computer Software Documentation, and
Technical Data for Commercial Items are licensed to the U.S. Government
under vendor's standard commercial license.

You have mail.
ssl:/xxxc/c.log: No such file or directory
cat: Cannot open  /xxxc/c.log: No such file or directory
ssl:/$exit
logout
Connection closed by foreign host.

[ 本帖最后由 princes1 于 2009-11-12 10:51 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-11-12 11:00 |只看该作者
路径 对否?
完整的编辑一下帖子。。比较乱

论坛徽章:
0
5 [报告]
发表于 2009-11-12 11:21 |只看该作者
A主机上有my.sh脚本,这个脚本用TELNET调用B主机的src_tar.sh脚本

路径是没问题啊!换成单引号也不行

现在就是用nohup my.sh &  这样都能正确执行,src_tar.sh能得到正确结果;
一放到crontab中
40 10 * * *  /my.sh >>/exec.log 2>&1
放到crontab中src_tar.sh即不能执行了,my.sh还有执行A主机上的一些语句是可以得到结果的
情况就是这样 不知道描述清楚了没

论坛徽章:
0
6 [报告]
发表于 2009-11-12 11:29 |只看该作者
换单引号呢 是我觉得cd 或许被shell引用了

放到crontab中src_tar.sh即不能执行了 这句我不明白

你放到crontab不能执行的原因 或许是路径错了

论坛徽章:
0
7 [报告]
发表于 2009-11-12 11:35 |只看该作者

回复 #1 princes1 的帖子

一般在命令行下可以运行,放入crontab后不能运行很有可能是crontab中不是写的脚本的绝对路径。
可以看看版主的文章,SHELL版新手导航

论坛徽章:
0
8 [报告]
发表于 2009-11-12 11:37 |只看该作者
#!/usr/bin/ksh
echo "program begin" >>/log
( echo user
   sleep 2
   echo user
   sleep 3
   echo "*****"
   echo "cd /xxxc"
   echo "src_tar.sh"   
   sleep 30
   echo "cat /xxxc/c.log"
   echo "exit"
   )| telnet 138.99.16.43
就是说   echo "src_tar.sh"   这句话没有起作用,这个脚本没被调用起来,单引号换了也没用,路径是没有问题的,要不然用nohup也不会得到正确结果了

论坛徽章:
0
9 [报告]
发表于 2009-11-12 15:05 |只看该作者
高手出来帮帮忙啊  别让帖子沉下去
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP