Запуск сценария оболочки на удаленный сервер Linux из локального окна?
Я пытаюсь запустить сценарий оболочки для запуска двоичного файла на удаленной коробке Linux. И бинарный, и сценарий оболочки находятся на моем локальном оконном компьютере. Есть ли способ, с помощью которого я могу запустить двоичный файл на удаленной машине непосредственно из Windows через инструменты командной строки, такие как PLINK?
Я не хочу помещать бинарный файл и скрипт во все удаленные Linux-боксы, на которых я хочу, чтобы они запускались. Вместо этого я хочу запустить скрипт оболочки, который будет вызывать бинарный файл и выполнять нужные функции непосредственно через мой локальный компьютер.,
2 ответа
Вы можете запустить скрипт оболочки удаленно, просто отправив его по ssh:
cat my_script.sh | ssh -T my_server
(Или каков бы ни был эквивалент windows/plink.)
Однако вы не можете запустить двоичный файл удаленно через канал, файл должен существовать на удаленном сервере. Вы можете сделать это, переместив файл со своего компьютера с Windows в известное место на удаленном сервере, а затем отредактировав свой скрипт, ожидая, что файл будет существовать в этом месте:
scp my_binary my_server:/tmp
cat my_script.sh | ssh -T my_server
А затем просто запустите ваш скрипт:
/tmp/my_binary
Или вы можете написать сценарий так, чтобы он извлекал двоичный файл из центрального расположения, где вы его размещаете:
wget -O /tmp/my_binary http://my_fileserver/my_binary
/tmp/my_binary
Обратите внимание: если сценарий оболочки не выполняет ничего, кроме вызова двоичного файла, он вам не нужен. Вы можете просто запускать команды напрямую через ssh:
ssh -T my_server "cd /tmp && wget http://my_fileserver/my_binary && ./my_binary"
Вам нужно будет скопировать бинарный файл в удаленную систему Linux, прежде чем он сможет быть выполнен. Тем не менее, вы можете иметь скрипт на компьютере с Windows, который использует sftp для переноса бинарной программы во временный каталог в /tmp
перед запуском, поэтому ручная настройка не требуется.