У меня много данных, которые необходимо обработать, и у меня есть доступ к 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: undefined variable»
Кроме того, если я что-то делаю в следующем формате:
#!/bin/bash
mydate=$1
mytime=$2
myname=$3
ssh name@hostname "python /path/to/somewhere/to/run/${mydate}/and/${mytime}
Он по-прежнему работает на локальном, а не на удаленном сервере.Что мне здесь не хватает?