Файл newsfeeds Файл newsfeeds



Файл newsfeeds

Файл newsfeeds определяет, куда какие статьи рассылать. Обычно он лежит в каталоге /etc/news.

Формат файл newsfeeds сначала может показаться сложным. Здесь я опишу его в общих чертах, а за подробностями отсылаю к man-странице newsfeeds(5). Синтаксис файла:

# newsfeeds file format site:pattern:flags:param site2:pattern2\ :flags2:param2
Каждая запись состоит из одной строки. Можно использоваать и несколько строк, но тогда требуется применить символ \ в качестве знака переноса. Символ # в начале строки обозначает комментарий.

Поле site определяет имя сайта, передача которому описана этой строкой. Здесь можно вписать любое имя, на которое потом будут ссылаться другие определения. Единственное, что здесь нельзя писать, это доменное имя сайта. Записанное здесь имя понадобится позже для поиска в таблице имен для программы innxmit, которая передает статьи по протоколу NNTP на удаленный сервер. Можно иметь несколько записей для одного сайта: они обрабатываются индивидуально.

Поле pattern указывает имена групп, которые надо передать этому сайту. Значение по умолчанию должно послать все группы, так что, если нужно именно это, оставьте поле пустым. Это поле обычно хранит разделенный запятыми список шаблонов имен. Символ * как обычно соответствует любой строке символов или ее отсутствию, символ . (точка) не имеет никакой специальной нагрузки, зато символ ! (при использовании в начале выражения) задает логический NOT. Наконец, символ @ в начале имени группы запрещает пересылать любые статьи, которые посланы в эту группу. Список читается и обрабатывается слева направо, так что Вы должны поместить более специфические правила сначала. Например, шаблон:

rec.crafts.brewing*,!rec.crafts.brewing.poison,@rec.crafts.brewing.private

пошлет все новости иерархии rec.crafts.brewing за исключением группы rec.crafts.brewing.poison. Он не пошлет никаких статей, которые пришли в группу rec.crafts.brewing.private: эти статьи будут доступны только тем людям, которые используют этот сервер.



Поле flags контролирует подачу новостей к заданному сайту. Здесь используется разделенный запятыми список из следующих команд:

size

Статья должна быть размером меньше заданного значения в байтах.

A items

Статья проверяется на соответствие критериям: d (должен быть заголовок Distribution) или p (не проверять сайт в поле Path заголовка).

B high/ low

Размер внутреннего буфера перед записью.

H [count]

Статья должна иметь меньше, чем count записей о пересылке, по умолчанию 1.

I size

Размер внутреннего буфера для передачи файлов.

M pattern

Этому шаблону соответствуют только модерируемые группы.

N pattern

Этому шаблону соответствуют только немодерируемые группы.

S size

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

T type

Типы подачи новостей: f (файл), m (поток, поле param в соответствующей записи указывает, что статья будет подаваться потоком), p (канал к программе), c (послать каналу stdin подпроцесса, заданного в поле param) и x (аналог c).

W items

Что записывать: b (размер статьи в байтах), f (полный путь), g (первая группа новостей), m (Message ID), n (относительный путь), s (сайт для подачи статьи), t (время приема), * (имя потока или перечень всех сайтов, которые получают статью), N (поле newsgroups заголовка), D (поле distribution заголовка), H (весь заголовок), O (обзорные данные) и R (данные для ответа).

Поле param имеет специальное кодирование, которое зависит от типа передачи. В наиболее общей конфигурации здесь хранится имя выходного файла, в который Вы будете записывать исходящие данные. В других конфигурациях Вы можете оставлять его пустым или задавать другие значения. Если Вы хотите сделать что-либо нестандартное, обратитесь за подробностями к man-странице newsfeeds(5).

Имеется специальное имя сайта, которое должно быть кодировано как ME и быть первым в этом файле. Эта запись используется, чтобы управлять заданными по умолчанию параметрами настройки для входящих статей. Если запись ME имеет дистрибутивный список, связанный с ней, этот список будет добавлен к каждой записи перед отправкой сообщения.

Я упомянул ранее, что можно использовать специальное сообщение для построения данных, которые делает работу с новостями проще. Это делается командой overchan, которая является частью INN. Чтобы делать это, мы создадим специальную локальную рассылку overview, которая передаст статьи для обработки команде overchan.

Наш сервер новостей будет обеспечивать только одну внешнюю подачу новостей, которая идет на Groucho Marx University, они получают все статьи из всех групп, кроме control и junk, а также группы rec.crafts.brewing.private, которая является местной, и rec.crafts.brewing.poison, в которую не могут ничего послать локальные пользователи.

Мы используем команду nntpsend для транспортировки новостей по NNTP на сервер news.groucho.edu. Программа nntpsend требует, чтобы мы использовали метод поставки "file" и писали путевое имя статьи и ее ID. Заметьте, что надо установить поле param в имя файла для вывода. Конфигурация в файле:

# /etc/news/newsfeeds file for the Virtual Brewery # # Send all newsgroups except the control and junk ones by default ME:!control,!junk:: # # Generate overview data for any newsreaders to use. overview::Tc,WO:/usr/lib/news/bin/overchan # # Feed the Groucho Marx University everything except our private newsgroup # and any articles posted to the rec.crafts.brewing.poison newsgroup. gmarxu:!rec.crafts.brewing.poison,@rec.crafts.brewing.private:\ Tf,Wnm:news.groucho.edu



Содержание раздела