我有很多需要处理的数据,可以访问3个独立的远程服务器。逻辑是在3个不同的服务器之间分割数据,而不是在单个服务器上运行。请注意,所有三个远程服务器都能够指向单个目录,这是我拥有处理所有数据的主脚本的位置。当我调用不同的bash脚本时,我遇到的问题是继承我的论点。
例如,我有一个主脚本,它看起来像:
processing stuff
more stuff
# call the first script
$scriptdir/step1.csh $date $time $name
在step1.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}
它仍然在本地而非远程服务器上运行。我在这里缺少什么?
答案 0 :(得分:0)
所以第一部分:
#!/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脚本;它始终在本地服务器上运行。