Что нового

Данные, строки Plink получить приветствие.

Glass4217

Знающий
Сообщения
80
Репутация
10
Здравствуйте, есть задача, при подключении на рабочую станцию с Linux получить "приветствие" операционной системы.
и уже отталкиваясь от того какая операционная система стоит ubuntu или debian будет выполнятся определенные команды.
вариант 1
Код:
Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-201-generic i686)
вариант 2
Код:
Linux yozh 4.19.0-10-686-pae #1 SMP Debian 4.19.132-1 (2020-07-24) i686
собственно само подключение и отправка команд я делать научился.
пытался с помощью StderrRead и StdoutRead , но никак не могу получить ответ.
 
Автор
Glass4217

Glass4217

Знающий
Сообщения
80
Репутация
10
так, но видимо я что-то упустил.
Код:
$command = Run("C:\Program Files (x86)\PuTTY\plink.exe -ssh -pw "&$password&" "& $host &" -l "&$user, "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Sleep(15000)
ConsoleWrite("тестируем чтение"&@CRLF)
$data = StderrRead ($command,20)
$data2 = StdoutRead ($command,20)
ConsoleWrite($data & "попытка раз"&@CRLF)
ConsoleWrite($data2 & "попытка два"&@CRLF)
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 605
Репутация
2 437
видимо я что-то упустил
Да, этап чтения справки.
Код:
;Вариант 1 (ожидаем полное завершение процесса)
$iPID = Run("C:\Program Files (x86)\PuTTY\plink.exe -ssh -pw " & $password & " " & $host & " -l " & $user, "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
ProcessWaitClose($iPID)
ConsoleWrite(StdoutRead($iPID) & @CRLF)

;Вариант 2 (пока процесс активен читаем данные)
$iPID = Run("C:\Program Files (x86)\PuTTY\plink.exe -ssh -pw " & $password & " " & $host & " -l " & $user, "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)

$sRead = ''

While ProcessExists($iPID)
    $sStdOut = StdoutRead($iPID)
    If @error Then ExitLoop
    
    If $sStdOut Then
        $sRead &= $sStdOut
        ConsoleWrite($sStdOut & @CRLF)
    EndIf
WEnd
 
Автор
Glass4217

Glass4217

Знающий
Сообщения
80
Репутация
10
Так моя ошибка в том, что я исключил цикл во время чтения потока?
Думал будет достаточно довольно продолжительной паузы перед чтением, а вон оно как. Завтра попробую.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 605
Репутация
2 437
ошибка в том, что я исключил цикл во время чтения потока?
Не так цикл, как ожидание завершения процесса.
Плюс неверное использование функции StderrRead/StdoutRead, там второй параметр почему то 20, это откуда?
 
Верх