我有很多数据需要处理,并有权访问3个独立的远程服务器。其逻辑是在3个不同的服务器之间拆分数据处理,而不是在单个服务器上运行。请注意,所有三个远程服务器都能够指向单个目录,我在该目录中有处理所有数据的主脚本。当我调用不同的bash脚本时,我遇到的问题是继续我的参数。
例如,我有一个主脚本,如下所示:
processing stuff
more stuff
# call the first script
$scriptdir/step1.csh $date $time $name
在步骤1.csh中,如果我有一些非常简单的东西,我可以连接到一个远程服务器并将主机名输出到一个文本文件中,例如:
#!/bin/bash
ssh name@hostname bash -c '
echo `hostname` > host.txt
我得到了所需的结果,其中'host.txt‘将是所需的连接主机名的主机名。但是,如果step1.csh看起来像这样:
#!/bin/bash
mydate=$1
mytime=$2
myname=$3
ssh name@hostname bash '
echo `hostname` > host.txt
echo ${mydate} > host.txt
我得到的错误是'mydate:未定义的变量‘
此外,如果我这样做:
#!/bin/bash
mydate=$1
mytime=$2
myname=$3
ssh name@hostname "python /path/to/somewhere/to/run/${mydate}/and/${mytime}
它仍然运行在本地服务器上,而不是远程服务器上。这里我漏掉了什么?
发布于 2018-06-08 04:15:05
所以第一部分:
#!/bin/bash
mydate=$1
mytime=$2
myname=$3
ssh name@hostname bash '
echo `hostname` > host.txt
echo ${mydate} > host.txt
解决方案是:
#!/bin/bash
mydate=$1
mytime=$2
myname=$3
ssh -T name@hostname << EOF
echo `hostname` > host.txt
echo ${mydate} > host.txt
EOF
但是,我仍然遇到一些问题,比如我试图在远程服务器上运行一个python脚本;它总是在本地服务器上运行。
https://stackoverflow.com/questions/50749121
复制相似问题