Сегодня, когда я попытался войти с моего ноутбука Linux на сервер Linux с SSH, я получил сообщение об ошибке:
ПРЕДУПРЕЖДЕНИЕ: ИДЕНТИФИКАЦИЯ УДАЛЕННОГО ХОСТА ИЗМЕНИЛАСЬ !
Поскольку я не менял ключи машины, я выполнил ssh -v
, чтобы посмотреть, что произойдет. Я обнаружил, что мой клиент OpenSSH (SSH-2.0-OpenSSH_7.2p2) принимает «алгоритм ключа хоста: ecdsa-sha2-nistp256»,
cd / root / TRY1 /
exec wget --http-user $ user --http-password $ password $ url Затем я хочу извлечь файл: cd / root / TRY1 /
exec bash -c "tar ...
Сначала я загружаю файл в / root / TRY1 /
:
#!/usr/bin/expect
cd /root/TRY1/
exec wget --http-user $user --http-password $password $url
Затем я хочу извлечь файл:
cd /root/TRY1/
exec bash -c "tar -xzvf /root/TRY1/BigDataProtector*.tgz"
Однако это просто загружает файл в этом месте и останавливается после этого. Файл не извлекается.
Но когда я комментирую часть wget и запускаю команду извлечения, он извлекается.
Как мне выполнить обе команды последовательно?
Используйте собственную команду Expect spawn
:
#!/usr/bin/expect
cd /root/TRY1/
spawn wget --http-user $user --http-password $password $url
spawn bash -c "tar -xzvf /root/TRY1/BigDataProtector*.tgz"
Или запретите wget
запись на терминал с аргументом - quiet
:
#!/usr/bin/expect
cd /root/TRY1/
exec wget --quiet --http-user $user --http-password $password $url
exec bash -c "tar -xzvf /root/TRY1/BigDataProtector*.tgz"
Индикатор выполнения wget
вызывает сбой ожидания при вызове с помощью exec
.