Захватить ответ с помощью команды SSH [closed]

Любые изменения, сделанные shopt, будут влиять только на оболочку, в которой вы работаете, когда выполняете команду. IE, как только вы закроете оболочку, изменения исчезнут. Так что, если вы не любите держать одну оболочку открытой долгое время (что некоторые и делают, используя screen или подобное), вам не нужно беспокоиться об этом.

Лично я использую rsync, как предложил @Kusalananda

1
04.03.2017, 21:30
2 ответа

Чтобы захватить стену, вы должны создать сценарий ожидания:

#!/usr/bin/expect -f
spawn sshpass -p XXX ssh login@domain
expect "$ "
send "ls\r"
expect "$ "
send "exit\r"

и захватить вывод, подобный этому

OUTPUT=$(expect expectscript)

Вы должны использовать ключи ssh.

1
27.01.2020, 23:34

Это позволило мне захватить выходные данные хоста

user@host /tmp# output=$(ssh login@domain "ls")
login@domain's password:
user@host /tmp# echo $output
file1
file2
file3

Еще одно решение, возможно, даже лучше, так как оно записывает все, включая баннер, а не только вывод:

ssh user@domain |tee /tmp/output

Где /tmp/output содержит полный журнал.

1
27.01.2020, 23:34

Теги

Похожие вопросы