首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过ssh连接到远程服务器,并使用参数来运行脚本

通过ssh连接到远程服务器,并使用参数来运行脚本
EN

Stack Overflow用户
提问于 2018-06-08 03:45:06
回答 1查看 326关注 0票数 0

我有很多数据需要处理,并有权访问3个独立的远程服务器。其逻辑是在3个不同的服务器之间拆分数据处理,而不是在单个服务器上运行。请注意,所有三个远程服务器都能够指向单个目录,我在该目录中有处理所有数据的主脚本。当我调用不同的bash脚本时,我遇到的问题是继续我的参数。

例如,我有一个主脚本,如下所示:

代码语言:javascript
复制
processing stuff
more stuff
# call the first script
$scriptdir/step1.csh $date $time $name

在步骤1.csh中,如果我有一些非常简单的东西,我可以连接到一个远程服务器并将主机名输出到一个文本文件中,例如:

代码语言:javascript
复制
#!/bin/bash
ssh name@hostname bash -c '
echo `hostname` > host.txt

我得到了所需的结果,其中'host.txt‘将是所需的连接主机名的主机名。但是,如果step1.csh看起来像这样:

代码语言:javascript
复制
#!/bin/bash
mydate=$1
mytime=$2
myname=$3

ssh name@hostname bash '
echo `hostname` > host.txt
echo ${mydate} > host.txt

我得到的错误是'mydate:未定义的变量‘

此外,如果我这样做:

代码语言:javascript
复制
#!/bin/bash
mydate=$1
mytime=$2
myname=$3
ssh name@hostname "python /path/to/somewhere/to/run/${mydate}/and/${mytime}

它仍然运行在本地服务器上,而不是远程服务器上。这里我漏掉了什么?

EN

回答 1

Stack Overflow用户

发布于 2018-06-08 04:15:05

所以第一部分:

代码语言:javascript
复制
#!/bin/bash
mydate=$1
mytime=$2
myname=$3

ssh name@hostname bash '
echo `hostname` > host.txt
echo ${mydate} > host.txt

解决方案是:

代码语言:javascript
复制
#!/bin/bash
mydate=$1
mytime=$2
myname=$3

ssh -T name@hostname << EOF
echo `hostname` > host.txt
echo ${mydate} > host.txt
EOF

但是,我仍然遇到一些问题,比如我试图在远程服务器上运行一个python脚本;它总是在本地服务器上运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50749121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档