Специальные строки Grep внутри файла конфигурации

Я пытаюсь создать скрипт bash, который читает файл .ssh / config и подключается к узлам, которые используют только IdentityFile или ssh, и запускают команды на удаленных серверах. Поэтому проблема заключается в том, что файл конфигурации содержит узлы, которые не используют IdentityFile и подключаются через пароли. Как явно grep Host и IdentityFile блокируют в файле и отбрасывают другие? Я уже сделал скрипт, который подключается ко всем хостам в файле с циклом for, но это не то, что я хочу на 100%. Спасибо. Мой файл .ssh / config выглядит так:

Host centos7-mp1
        Hostname 192.168.89.102
        user root
        IdentityFile /root/.ssh/keys/id_rsa_passwordless


Host centos6-mp2
        Hostname 192.168.89.103
        user root
        IdentityFile /root/.ssh/keys/id_rsa_passwordless

Host centosvm-test
        Hostname 192.168.56.233
        user test
1
задан 24 March 2017 в 15:36

1 ответ

Grep определенная строка внутри файла. Для grep:

$ grep -i 'string' ~/path/to/config/file/

Если это именно то, что вы хотите ..

0
ответ дан 23 May 2018 в 00:19
  • 1
    Спасибо за ответ. Я хочу, чтобы вывод содержал только это, в этом конкретном файле это был бы Host centos7-mp1 IdentityFile /root/.ssh/keys/id_rsa_passwordless и Host centos6-mp2 IdentityFile /root/.ssh/keys/id_rsa_passwordless, без Host centosvm-test и строки ниже этого, потому что этот файл не содержит IdentityFile. – Igor Mijatovic 24 March 2017 в 15:45

Другие вопросы по тегам:

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