Как получить wwn "клиентского" инициатора хоста с карты и коммутатора FC SAN

  1. Выберите произвольную строку, которая никогда не появится в конфигурационном файле.  Лучше избегать специальных символов, таких как /, . , *, [ и ].  Например, я использую .
  2. Сделайте следующее:

    ed -s /etc/ssh/sshd_config << EOF
     g/^#*PermitRootLogin/s/^//
     g/^##*PermitRootLogin...../s///
     1,$s/^\(#*PermitRootLogin\).*/\1 no/
     w
     q
    EOF
    
  3. Что это делает?

    Находит каждую строку, которая

    • начинается с PermitRootLogin, или
    • начинается с одного или более символов #, за которым немедленно следует PermitRootLogin и не более четырех других символов,

    и изменяет его на PermitRootLogin no, оставляя любой # символ(ы) в начале строки.

  4. А?  Что?  Почему он это делает?

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

    PermitRootLogin yes
    PermitRootLogin no
    PermitRootLogin Быстрая коричневая лиса перепрыгивает через ленивую собаку.
    #PermitRootLogin yes
    #PermitRootLogin no
    

    но не следующие строки:

    #В этом разделе мы устанавливаем
    #PermitRootLogin на "возможно",
    #потому что мы еще не решили.
    

    Возможно, это неудачный побочный эффект такого дизайна. что следующие строки:

    ##PermitRootLogin yes
    ##PermitRootLogin ???
    

    будут изменены, а следующие строки:

     PermitRootLogin yes
    # PermitRootLogin yes
     #PermitRootLogin yes
    

    не будут.

  5. Как это работает?
    • g/^#*PermitRootLogin/s/^// находит все строки, которые начинаются с PermitRootLogin, или начинаются с одного или более символов #, за которыми сразу же следует PermitRootLogin, и "помечает" их строкой (вставляет ее в начало строки).  Это повлияет на строки PermitRootLogin, которые закомментированы, при условии, что нет пробелов (или чего-либо еще) до или после символа #.
    • g/^##*PermitRootLogin...../s/// находит все помеченные строки, в начале которых есть хотя бы один # и не менее пяти символов после PermitRootLogin, и удаляет метку.  Это снимает метки с закомментированных строк PermitRootLogin. в которых есть что-то длиннее, чем yes.  (Конечно, вы можете изменить количество символов, если хотите.)
    • 1,$s/^\(#*PermitRootLogin\).*/\1 no/ находит все строки, которые все еще помечены, удаляет метку, перехватывает PermitRootLogin и все предшествующие # символы, сохраняет их и заменяет остальную часть строки на no.
  6. Конечно, при желании вы можете свернуть эти команды в printf.
0
23.04.2019, 17:49
1 ответ

Я немного запутался в вашем вопросе.

Если вы хотите узнать подробности о том, как устройства регистрируются в фабрике, вам следует прочитать протокол FC -и спецификации фабрики FC -и начать с раздела RSCN -Зарегистрированное изменение состояния. Уведомление. В твоем случае,эти уведомления будут отправляться, когда вы подключаете или отключаете устройство от порта коммутатора, уведомляя всех участников зоны структуры -об изменениях.

Если вам нужно проверить конфигурацию зоны и посмотреть, какие устройства могут получить доступ к определенной WWN, у вас есть несколько вариантов в зависимости от различных обстоятельств. Например, на коммутаторе Brocade можно запустить :nszonemember <put-your-device-WWN-here>, чтобы запросить сервер имен фабрики обо всех других онлайн-устройствах, зонированных с заданным WWN.

0
28.01.2020, 03:47

Теги

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