![]() |
echo с перенаправлением вывода через plink
Задача: с машины, работающей под WindowsXP, требуется выполнить на Linux-хосте через telnet такую последовательность команд:
Код:
echo -e "secret\nsecret" | passwd ; exit Код:
plink.exe -telnet 192.168.1.1 "passwd; exit" Код:
plink.exe -telnet 192.168.1.1 -m z.sh Код:
echo "passwd; exit" | plink.exe -telnet 192.168.1.1 Код:
echo passwd; exit | plink.exe -telnet 192.168.1.1 Код:
echo echo -e "secret\nsecret" | passwd ; exit | plink.exe -telnet 192.168.1.1 1) plink не передает команды на удаленный хост иначе как со стандартного ввода; 2) выполняющийся на локальной машине echo пытается перенаправить вывод в passwd, если не взять последовательность команд в кавычки; 3) кавычки же заставляют удаленный хост считать строку цельной командой; 4) ssh не включится до смены пароля, что, собственно и должен сделать мой скрипт; 5) ключи putty -telnet -m одновременно тоже не работают. upd.: Экранирование символа канала тоже не решило проблему: Код:
>echo echo -e "secret\nsecret" ^| passwd ; exit | plink.exe -telnet 192.168.1.1 |
Цитата:
|
А почему не работает такая конструкция:
Код:
echo echo -e "secret\nsecret" ^| passwd ; exit | plink.exe -telnet 192.168.1.1 Код:
echo echo -e "secret\nsecret" ^| passwd ; exit >tmpfile |
Время: 21:15. |
Время: 21:15.
© OSzone.net 2001-