пятница, 1 февраля 2013 г.

Выполнение команд на удаленном сервере

Я писал скрипт бэкапа данных с удаленного сервера и столкнулся с проблемой. Вот строчки скрипта:

ssh testuser@192.168.0.188 
cd testdir
Как мне казалось, тут нет никакой ошибки. Однако первый же запуск окончился неудачей. Как оказалось, ssh устанавливает соединение и сразу же передает управление консоли удаленного сервера. Однако скрипт-то запущен на локальной машине! Поэтому нас встречает приглашение от удаленного сервера. Завершив сеанс ssh по Ctrl+C, я смог наблюдать как команды скрипта выполнялись дальше. Но на локальной машине, а не на удаленной.
Я нашел выход следующим образом: ssh может выполнять указанную команду самостоятельно, при этом он открывает соединение, выполняет команду и закрывает соединение. Поскольку команд у меня несколько, я обернул их в скрипт и запускаю его следующим образом:
ssh testuser@192.168.0.188 ./backupserv.sh

Комментариев нет:

Отправка комментария