【问题标题】:Call remote sh script from local sh file从本地 sh 文件调用远程 sh 脚本
【发布时间】:2014-07-04 09:35:47
【问题描述】:

我在 CentOS 上运行调用远程 sh 文件的 sh 脚本时遇到问题。在 user@host1 我有 start.sh 文件,里面有下一个命令

NODE1_SSH_PATH=user@host2
PROGRAM_HOME=/home/user/app

ssh $NODE1_SSH_PATH $PROGRAM_HOME/bin/run.sh > start.log

这个脚本的结果是下一个:

bash: /home/user/app/bin/run.sh: Permission denied

我尝试使用 chmod 运行此脚本,如下所示:

ssh $NODE1_SSH_PATH chmod u+x $PROGRAM_HOME/bin/run.sh > start.log

但是在这种情况下我没有得到任何结果,日志文件是空的。有人可以帮我减缓这个我希望是简单的任务吗?

【问题讨论】:

  • chmod u+x 是您执行一次的操作,然后像最初一样尝试再次运行它。 chmod 不执行脚本。
  • 什么是输出:ssh $NODE1_SSH_PATH ls -l $PROGRAM_HOME/bin/run.sh

标签: bash ssh centos


【解决方案1】:

我相信 /home/user/app/bin/run.sh 是不可执行的。

试试这个

ssh $NODE1_SSH_PATH /bin/bash $PROGRAM_HOME/bin/run.sh > start.log

【讨论】:

  • 谢谢 Tiago,你的回答真的很有帮助,但我在脚本中遇到了其他问题,现在我可以运行远程 shell 文件,但是这个运行会锁定所有其他命令,例如我在同一个 sh文件其他节点上的其他调用 ssh $NODE2_SSH_PATH /bin/bash $PROGRAM_HOME/bin/run.sh > start.log 和 runner 无法到达此行。
  • @Maryan 我需要更多关于你想要做什么的细节。我可以建议将这条线放在后台,但这样做可能不安全。我最好知道你想做什么。
  • 嗨蒂亚戈,你的第一个答案有我需要的一切,我的评论是我自己的错误的结果。谢谢,我说这是一个简单的问题 :) 我不知道为什么,但是这个脚本可以在 Ubuntu 上运行,没有 /bin/bash 但在 CentOS 上需要它。
猜你喜欢
  • 2019-11-12
  • 2012-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-28
  • 2014-02-15
  • 2018-09-04
相关资源
最近更新 更多