GNU screen

GNU Screen — свободная консольная утилита-мультиплексор, предоставляющая пользователю доступ к нескольким сессиям в рамках одной сессии. Это полезно для работы с несколькими программами из командной строки, а также для запуска программ на удаленном сервере.

Запускаем новую сессию

Теперь шелл запущен в screen сессии.

Команды screen

  1. Создать новое окно screen
  2. Читать далее GNU screen

RCVD_ILLEGAL_IP Received: contains illegal IP address

3.4 RCVD_ILLEGAL_IP Received: contains illegal IP address
Баг в spamassassin версии 3.3.1, связанный с использованием IP адреса из диапазона 5.0.0.0/8 (их сейчас Hetzner раздает)
Лечится установкой spamassassin из testing

  1. Добавляем репозиторий testing в /etc/apt/sources.list
  2. Далее в /etc/apt/apt.conf
  3. Обновляем список репозиториев
  4. Обновляем spamassassin
  5. Проверяем

      3.4 RCVD_ILLEGAL_IP        Received: contains illegal IP address

Как настроить spf в debian

Как включить провеку SPF в Postfix
Оригинал статьи настройка spf postfix debian

  1. Устанавливаем необходимые пакеты
  2. Добавляем в /etc/postfix/main.cf
  3. В проверку smtpd_recipient_restrictions после reject_unauth_destination(эта директива необходима, иначе ваш сервер будет open-relay) добавляем check_policy_service unix:private/policy-spf,
  4. В /etc/postfix/master.cf добавляем

/etc/postfix-policyd-spf-python/policyd-spf.conf

Метасимволы в регулярных выражениях

Метасимволы регулярных выражений

Метасимвол Описание Пример
^ Циркумфлекс, крышка. Обозначает начало строки. ^text Совпадает, если строка начинается с ‘text’, например text или text1234abcd
$ Доллар. Обозначает конец строки text$ Совпадает, если строка заканчивается ‘text’, например text или 1234abcdtext
^text$ Совпадает только с ‘text’
\< Граница слова позиция в начале слова
/> Граница слова позиция в конце слова
[…] Символьный класс (character class). Используется, когда необходимо перечислить символы, которые могут находится в данной позиции текста m[ae]n Соответствует ‘man’ и ‘men’
Символьный класс может содержать интервалы, класс [0123456789abcdABCD] записывают в виде [0-9a-dA-D]. Интервалы можно объединять с литералами: выражение [0-9A-D_!.?] совпадает с цифрой, символами A,B,C,D, подчеркиванием, точкой и вопросительным знаком.
[^…] Инвертированный символьный класс [^1-6] совпадает с символами, не принадлежащими интервалу 1-6. Префикс ^ инвертирует список
. Совпадает с одним произвольным символом
| Одно из нескольких выражений Bob|Robert — одно выражение, совпадающее с любой из этих строк. Bob|Rober|Ivan|Denis
(…) Ограничение действия
Квантификаторы
? Метасимвол ? означает, что предшествующий ему символ является необязательным. Он помещается сразу же вслед за символом, который может появиться в этом месте в выражении, но его отсутствие не должно влиять на успешный результат поиска. Слова color и colour отличаются только только символом u, для их поиска можно использовать выражение colou?r
+ Метасимвол + обозначает один или несколько экземпляров непосредственно предшествующего элемента
* Метасимвол * обозначает любое количество экземпляров элемента (в том числе и нулевое). Иначе говоря, «найти столько экземпляров, сколько это возможно, но при необходимости обойтись и без них».
Интервалы совпадений
{min,max} Метапоследовательность для явного определения минимального и максимального количества совпадений. Эта конструкция называется Интервальным квантификатором. [a-zA-Z]{1,5} совпадает с одной, двумя, тремя, четырьмя и пятью буквами. Запись {0,1} эквивалентна метасимволу ?.
{n} N совпадений
{n,} N и больше совпадения
Обратные ссылки
(…) Обратные ссылки позволяют искать новый текст, который совпадает с другим текстом, совпавшим с предшествующей частью выражения, причем на момент написания выражения этот текст неизвестен. \<([a-zA-Z]+) +\1\> — выражение ищет повторяющиеся слова.
Экранирование
\ Для поиска символа, который интерпретируется как метасимвол. \. — совпадает с . Такая последовательность называется «экранированной точкой». Экранирование может выполняться со всеми стандартными метасимволами.

Регулярные выражения

Регулярные выражения (regular expressions, сокр. RegExp, RegEx, регэ́кспы или ре́гексы) — это строка образец (pattern), состоящая из символов и метасимволов, задающих параметры поиска. Статья про регулярные выражения на wikipedia.org. Очень рекомендую к прочтению Фридл Регулярные выражения. Здесь я обозначу основные тезисы использования регэкспов на практике.