找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20221|回复: 10

[问题求助] [已解决]一个SH脚本手动可执行,但是放到计划任务中执行却没有效果?

[复制链接]
发表于 2017-4-14 09:29:24 | 显示全部楼层 |阅读模式
本帖最后由 deanhong 于 2017-4-17 09:15 编辑

这个是脚本,权限给了777
cat /hxapp/syncd.sh
#!/bin/sh
/hxapp/hqserver/bin/syncd -d

手动可执行
sh /hxapp/syncd.sh
pstree |grep syncd
   |-syncd---35*[{syncd}]

计划任务用过这两种格式 结果发现程序都没起来
05 9 * * * /bin/bash /hxapp/syncd.sh
05 9 * * * /hxapp/syncd.sh

查看CRON日志
cat /var/log/cron
Apr 14 09:05:01 122-n crond[20187]: (root) CMD (/bin/bash /hxapp/syncd.sh)
Apr 13 09:05:01 122-n crond[20347]: (root) CMD (/hxapp/syncd.sh)

应该都是执行了。。但程序都没起来,不知道问题在哪儿,麻烦大家帮忙看看?

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2017-4-14 10:02:51 | 显示全部楼层
05 9 * * * /hxapp/syncd.sh > /var/tmp/test.log 2>&1
看看 /var/tmp/test.log 有什么信息
 楼主| 发表于 2017-4-14 10:46:20 | 显示全部楼层
cat /var/tmp/test.log
/bin/sh: /hxapp/syncd.sh: /bin/sh^M: bad interpreter: No such file or directory

有这个报错。。
 楼主| 发表于 2017-4-14 10:47:05 | 显示全部楼层
但是/bin/ 下是有 sh 这个文件的
 楼主| 发表于 2017-4-14 10:51:21 | 显示全部楼层
syncd.sh 里格式改为 :set ff=unix 后
就这个报错了。。
/hxapp/hqserver/bin/syncd: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
发表于 2017-4-14 10:54:44 | 显示全部楼层
回复 3# deanhong


/hxapp/syncd.sh 可能是在Windows里面编辑之后传到Linux里面的
需要转换一下格式
  1. dos2unix /hxapp/syncd.sh
复制代码
 楼主| 发表于 2017-4-14 11:08:35 | 显示全部楼层
恩 转换为UNIX了
而且我也查了下LD_DEBUG=libs /hxapp/hqserver/bin/syncd -v
结果是 trying file=/usr/local/lib/libevent-1.4.so.2
而且路径下也是有libevent-1.4.so.2的
发表于 2017-4-14 13:00:09 | 显示全部楼层
回复 5# deanhong


这个报错大部分是因为环境变量的问题,可以在脚本里面 source 一下用户环境变量。
比如你的程序可以在 root 用户下启动,那就这样试试:
  1. #!/bin/sh
  2. . /root/.bash_profile
  3. /hxapp/hqserver/bin/syncd -d
复制代码
 楼主| 发表于 2017-4-14 13:36:38 | 显示全部楼层
始终都是ROOT下操作的
    #!/bin/sh
    . /root/.bash_profile
    /hxapp/hqserver/bin/syncd -d
试了这个
/hxapp/hqserver/bin/syncd: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
依然是这个报错。。不理解的是 为何手动执行就OK。。
发表于 2017-4-14 21:42:37 | 显示全部楼层
回复 9# deanhong


原因是 crontab 的环境变量跟普通用户的环境变量不一样
  1. #!/bin/sh
  2. . /root/.bash_profile
  3. . /etc/profile
  4. /hxapp/hqserver/bin/syncd -d
复制代码
 楼主| 发表于 2017-4-17 09:14:56 | 显示全部楼层

RE: 一个SH脚本手动可执行,但是放到计划任务中执行却没有效果?

回复 10# Batcher

原来如此,按照你的方法 目前看已正常运行,多谢!又学习了一招~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 22:24 , Processed in 0.017426 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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