Библиотека сайта rus-linux.net
Глава 21. C-News
Одним из наиболее популярных пакетов программ для Netnews является C-News. Он было разработан для сайтов, которые работают с новостями через UUCP.
C-News хранит файлы настроек в /etc/news
,
большинство исполняемых модулей лежит в иерархии
/usr/lib/news
. Статьи хранятся в иерархии
/var/spool/news
. Все файлы в этих каталогах должны принадлежать
пользователю news или группе
news. Большинство проблем возникает из-за
того, что C-News не имеет прав доступа к своим файлам. Прежде чем что-то
править в них, используйте команду su, чтобы стать
пользователем news. Исключением является
программа setnewsids, которая используется для
установки реального user ID для программ работы с новостями. Она должна
принадлежать пользователю root и иметь бит
setuid.
В этой главе я подробно опишу все файлы конфигурации C-News и покажу, что именно нужно делать для поддержания пакета в рабочем состоянии.
Доставка новостей
Статьи могут быть поданы C-News разными способами. Когда локальный
пользователь отправляет по почте статью, newsreader (программа для работы с
новостями) обычно вручает ее команде inews, которая
заполняет информацию заголовка. Новости от отдаленного абонента, будь это
одиночная статья или целый пакет, передаются команде rnews
, которая сохраняет их в каталоге
/var/spool/news/in.coming
, откуда они будут подняты в более позднее
время программой newsrun. Любым из этих двух методов
статья будет в конечном счете вручена команде relaynews
.
Для каждой статьи команда relaynews проверяет,
была ли статья уже замечена на локальной машине, для чего ищет id сообщения в
файле хронологии (history
). Копии статьи будут
пропущены. Затем relaynews рассматривает строку
заголовка Newsgroups:
, чтобы выяснить, запрашивает
ли локальная машина статьи из любой из этих групп. Если она это делает, и
группа новостей перечислена в файле active
,
relaynews пробует сохранить статью в соответствующем
каталоге в области хранения новостей. Если этот каталог не существует, он
будет создан. Id сообщения статьи будет зарегистрирован в файле
history
. В противном случае
relaynews пропускает статью.
Если relaynews будет не в состоянии сохранить
входящую статью, потому что группа, в которой она была зарегистрирована, не
перечислена в вашем файле active
, статья будет
перемещаться в группу junk.
relaynews также проверит старые или статьи без дат и
уничтожит их. Входящие пакеты, которые терпят неудачу по любой другой
причине, перемещаются в /var/spool/news/in.coming/bad
, и регистрируется сообщение об ошибках.
После этого статья рассылается всем сайтам, запросившим новости из этой
группы способом, специфичным для каждого конкретного сайта. Чтобы не посылать
статью одному и тому же сайту несколько раз, проверяется поле
Path:
заголовка статьи, в нем указываются все
машины, через которые прошла статья. Сайту будет послана статья, только если
он не упомянут в этом поле.
C-News обычно используется, чтобы передавать новости между UUCP-машинами, хотя можно использовать его и в NNTP-среде. Чтобы доставить новости на удаленную UUCP-машину делается следующее: используется uux для вызова на удаленной машине команды rnews с последующей перекачкой статьи или набора статей на эту машину. Подробно UUCP рассматривается в главе 16.
Когда удаленный сайт поддерживает пакетирование, C-News не рассылает
статьи поштучно, а добавляет имена их файлов в некий файл, обычно
out.going/site/togo
. Периодически из
crontab вызывается программа пакетирования, которая
записывает статьи в файл, сжимает их, если это задано, и отправляет
rnews на удаленной машине.
Назад | Глобальное оглавление | Вперед |
Как Usenet обрабатывает новости? | Установка |