2016-11-02 3 views
2

У меня есть небольшой тестовый скрипт следующим образом;mkdir -p over SSH bash

TESTDIR="$HOSTNAME" 
ssh [email protected] "\$TESTDIR" 
mkdir -p ~/$TESTDIR/test 
exit 

выход с bash -x есть;

+ TESTDIR=ndx 
+ ssh [email protected] '$TESTDIR' 
+ mkdir -p /home/user/ndx/test 
+ exit 

Однако на удаленном сервере никакой каталог не существует?

+3

вы» re running mkdir/exit LOCALLY. они не отправляются по ссылке ssh, а команда ssh будет блокировать, пока удаленная оболочка не будет закрыта. к моменту достижения команды mkdir ssh завершает работу и связь закрывается. 'ssh ... -c 'команда; выполнить; «отдаленно» - это то, что вы хотите. –

+0

Могу ли я попросить пример, пожалуйста? – eekfonky

ответ

3

Последний аргументом ssh является командой вы хотите выполнить на удаленном хосте:

TESTDIR="$HOSTNAME" 
ssh [email protected] "mkdir -p ~/$TESTDIR/test" 
1

Если у вас есть PEM файл SSH аутентификации использовать следующее

ssh -i your-key.pem [email protected]_addr "mkdir -p /your_dir_name/test"