Сетевая конфигурация Linux: червь?

Регулярные выражения Perl и Perl Compatible Regular Expressions немного отличаются от POSIX "basic" или "extended" regex, которые реализуют утилиты типа grep. Wikipedia, вероятно, лучшее место для ознакомления с различиями. Поддержка PCRE может быть доступна не только в Perl, например, в GNU grep -P.

Для базового regex:

echo "Monday Feb 23" | grep '^[[:alpha:]]+day (Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec)[[:alpha:]]* [1-9][0-9]?$'

Для Perl regex с именованными группами захвата:

$re = qr/
  ^                      # Start of string
  (?[[:alpha:]]+day)  # Match one or more alpha characters before "day". 
  \s+                    # One or more whitespace chars
  (?(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[[:alpha:]]*) # Months
  \s+                    # One or more whitespace chars
  (?\d{1,2})     # 1-2 digits.   
  $                  # End of string. 
/x;

print "match\n" if ( "Thursday May 1" =~ $re );
print "match\n" if ( "Monday February 23" =~ $re );
print "no match\n" if ( "Wednesday May 123" !~ $re );
print "no match\n" if ( "Thursday Blarg 23" !~ $re );
print "no match\n" if ( "Inglebert January 5" !~ $re );

Модификатор x после разделителей // позволяет использовать пробелы и комментарии, чтобы ваши регулярные выражения были более читабельными.

При успешном совпадении каждое поле будет храниться в своей собственной группе захвата, доступ к которой осуществляется через хэш совпадения $+

printf "day [%s] month [%s] day of month [%s]\n", $+{day}, $+{month}, $+{number}

Если вы хотите, чтобы совпадение чисел было точным, вы можете использовать более технический подход.

(?[1-9]|[12][0-9]|3[01])

Если вы дошли до этого уровня, вам следует использовать модуль разбора даты, а не регулярные выражения, поскольку даты слишком сложны. Например, 31 апреля или февраль в целом.

-2
16.10.2018, 06:26
2 ответа

Ключевое слово ifaceоткрывает раздел конфигурации сети. Вы поместили определение DNS-серверов в строку iface, а не в предыдущий раздел. Это расстроило ifup, потому что он не понимает строку объекта, начинающуюся iface dns-namservers.

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

auto ens33
iface ens33 inet static
    address 192.168.58.168
    netmask 255.255.255.0
    broadcast 192.168.58.255
    gateway 192.168.58.11
    dns-nameservers 192.168.58.11 192.168.58.21

Однако вам, вероятно, потребуется отключить NetworkManager, если вы сделаете это, так как некоторые его части полностью игнорируют инструкции в файле interfaces. Грустно.

2
28.01.2020, 05:14

Why the interfaces file didn't mention my ens33 interface though it was fully operational?

Потому что, как уже упоминалось в комментарии, существует движение по замене «традиционного» способа использования /etc/network/interfaces«новым» способом использования systemdи сетевого менеджера.

Why "resolvconf" does prevent to use "resolv.conf" and force to use "base" and writes itself the DNS properties in "interfaces", and someone tells me here it shouldn't be written that way?

Не уверен, что правильно понял вопрос, но давным-давно, когда сети были статичными и в больших организациях, resolv.confписалось от руки, а DNS-сервер был частью организаций. Это было еще до того, как в Windows появилась правильная сеть (или прочее Novell ). Затем все и его дядя начали иметь дома Интернет, с домашним маршрутизатором, выступающим в роли DHCP-сервера, DNS-прокси, а провайдер предоставил DNS. Поэтому был добавлен дополнительный уровень, который автоматически генерирует resolv.confна основе информации, предоставленной DHCP.

Why did the parameters of the "ens33" interface disappear after reboot?

Если я правильно понял ваше описание, они не исчезли.

ifup: /etc/network/interfaces:16: unknown or no address type and no inherits keyword specified

означает, что в файле была синтаксическая ошибка,и

ifup: couldn't read interfaces file "/etc/network/interfaces"

означает, что из-за ошибки он не смог прочитать информацию в файле (конечно же может прочитать сам файл, иначе бы он не жаловался на ошибку в строке 16 ).

Which, in the end, are the effective files that define the properties of a LAN adapter?

Это полностью зависит от того, используете ли вы новую или традиционную систему. (Лично мне новая система не нравится, поэтому я не могу на это ответить; и даже традиционная система со временем приобрела множество крючков, которые могут изменить конечный результат. По уважительной причине, потому что бывают ситуации, когда вам это нужно ).

Более полезный вопрос: :"какие файлы мне нужно изменить, чтобы правильно настроить сеть для этой машины?" И это зависит от вашей сети -для типичной домашней сети с DHCP-сервером в домашнем маршрутизаторе ответ «вам не нужно ничего менять». Если вам нужен конкретный ответ, отредактируйте вопрос и опишите свою сеть.

To these 4 questions, I've been searching the web and the "man" pages, but couldn't find a single answer.

Это потому, что старые материалы в Интернете (и многие справочные -страницы )были написаны, когда существовал только «традиционный» метод, а люди, пишущие о новом методе, часто не упоминают старый метод..

This justifies the title of this page in my opinion, although it seems I've deceived three gurus who, instead of trying to help a beginner, sacrificed a bit of their so precious time to minus my question...

Если я могу добавить сюда свое личное мнение :Нейтрально сформулированные вопросы, которые оставляют в стороне ваши личные чувства, а также идеи о том, как «все должно быть», помогут избежать отрицательных голосов.

2
28.01.2020, 05:14

Теги

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