Ssh на несколько хостов и запустить команду на основе имен хостов - PullRequest
0 голосов
/ 19 марта 2019

Я пытаюсь подключиться к нескольким серверам по ssh и создать новую папку с именем хоста, имя которого я использую ssh.

Я использую следующий скрипт ksh:

#!/usr/bin/ksh
for i in `cat $1`
do
ssh $i "sudo mkdir $i"
done

Это выдает Usage: mkdir [-p] [-e] [-m mode] Directory ... при запуске ./myscript hostnameList

Я почти уверен, что это как-то связано с переменной $ i, но не уверен, как я могу ее использовать.

1 Ответ

0 голосов
/ 19 марта 2019

Я думаю, что в цикле for отсутствует do.

Попробуйте:

#!/usr/bin/ksh
for i in `cat $1`; do
    ssh $i "sudo mkdir $i"
done

https://www.cyberciti.biz/faq/ksh-for-loop/

Также убедитесь, что вы используете двойнойцитаты, как в вашем примере.

...