ожидать, что аргументы ssh не используются в цикле while / for

От https://wiki.debian.org/HowToUpgradeKernel

Убедитесь, что вы прочитали все, что он говорит вам во время установки, особенно об образе initrd. Если вы используете необычный загрузчик, вам может потребоваться переконфигурация после установки образа ядра - не не забудьте указать ему использовать соответствующий образ initrd для ядра в этом случае (страница PackageManagement). этом случае (страница PackageManagement содержит подробную информацию о перечислении содержимого пакета).

Вы, очевидно, загрузили более новый образ ядра, но, очевидно, он не вызывается вашим загрузчиком.

Если у вас есть доступ к конфигурации вашего загрузчика, убедитесь, что вызывается правильный образ.

Однако более вероятно, что вы запускаете систему в контейнере, поэтому только системный администратор хоста может изменить ядро для вас.

1
22.06.2018, 20:36
2 ответа

Одним из упрощений было бы устранение ошибочного и медленного цикла оболочки while, который также освободил бы stdinдля использования для interact. То есть вместо этого входной файл будет передан и прочитан кодом TCL в сценарии expect.

#!/usr/bin/expect

if {[llength $argv] != 1} {
    puts stderr "Usage: $0 iplist-file"
    exit 1
}

set ipfh [open [lindex $argv 0]]

while {[gets $ipfh ip] >= 0} {
    spawn ssh root@$ip dmidecode
    expect "Password:"
    send "Hunter2\r";
    interact
}
2
27.01.2020, 23:23

У thrig есть отличный ответ. Если вы хотите придерживаться bash (, даже несмотря на то, что цикл чтения while -чрезвычайно медленный и утомительный для получения правильного синтаксиса -мудрого ), используйте другой файловый дескриптор для чтения из файла и разрешите ожидать держаться за стандартный ввод:

while IFS= read -r -u3 ip; do
#.................^^^
    /usr/bin/expect << EOF
        spawn ssh "root@$ip" dmidecode 
        expect "Password:"
        send "xxxx\r";
        interact
EOF
done 3< iplist 
#...^^

Если команда dmidecode не требует участия человека, измените interactнаexpect eof

1
27.01.2020, 23:23

Теги

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