Протокол новостей Usenet знает специальный класс статей, которые вызывают некоторые ответы или действия системы новостей. Они называются сообщениями control. Они распознаются присутствием поля Control: в заголовке статьи, которое содержит имя операции управления, которую нужно выполнить. Имеются отдельные типы этих операций, которые обрабатываются командами оболочки, расположенными в /usr/lib/news/ctl.
Большинство из них выполнит свое действие автоматически во время обработки статьи C-News, без уведомления newsmaster. По умолчанию только сообщения checkgroups будут вручены newsmaster, но Вы можете изменить это, редактируя скрипты.
Наиболее широко известное сообщение cancel , которым пользователь может отменять статью, посланную ранее. Оно действительно удаляет статью из каталогов spool, если она существует. Сообщение cancel будет послано всем абонентам, которые получают новости из заданных групп независимо от того, была ли статья уже замечена или еще нет. Нужно принять во внимание возможность того, что первоначальная статья была отсрочена, несмотря на сообщение сокращения. Некоторые системы новостей позволяют пользователям отменять сообщения другого автора, это определенный минус.
Два сообщения имеют дело с созданием или удалением newsgroups: это newgroup и rmgroup . Newsgroups ниже "обычной" иерархии могут быть созданы только после того, как среди читателей Usenet было проведено обсуждение и утверждение. Правила для иерархии alt представляют собой что-то близкое к анархии. Для подробной информации см. регулярные регистрации в news.announce.newusers и news.announce.newgroups. Никогда не посылайте сообщение newgroup или rmgroup самостоятельно, если Вы определенно не знаете, что Вам позволено.
Сообщения checkgroups посылаются администраторами новостей, чтобы для всех абонентов внутри сети синхронизировать их файлы active с фактическим положением дел в Usenet. Например, коммерческие поставщики услуг Internet могли бы выпускать такое сообщение к своим абонентам. Один раз в месяц "официальное" сообщение checkgroups для главных иерархий отсылается в comp.announce.newgroups их модератором. Однако оно зарегистрировано как обычная статья, а не как управляющее сообщение. Чтобы выполнить операцию checkgroups, сохраните эту статью в файле, скажем, /tmp/check, удалите все до начала сообщения управления и передайте его скрипту checkgroups , используя следующую команду:
# su news -c "/usr/lib/news/ctl/checkgroups" < /tmp/check |
Это модифицирует Ваш файл newsgroups, добавляя группы, перечисленные в localgroups. Старый файл newsgroups будет перемещаться в newsgroups.bac. Обратите внимание, что регистрация сообщения локально редко будет работать, потому что inews отказывается принимать это как статью.
Если C-News находит несоответствия между списком checkgroups и файлом active, он выдаст список команд, которые модернизируют Ваш сервер и сообщат это администратору новостей. Вывод обычно походит на это:
From news Sun Jan 30 16:18:11 1994 Date: Sun, 30 Jan 94 16:18 MET From: news (News Subsystem) To: usenet Subject: Problems with your active file The following newsgroups are not valid and should be removed. alt.ascii-art bionet.molbio.gene-org comp.windows.x.intrisics de.answers You can do this by executing the commands: /usr/lib/news/maint/delgroup alt.ascii-art /usr/lib/news/maint/delgroup bionet.molbio.gene-org /usr/lib/news/maint/delgroup comp.windows.x.intrisics /usr/lib/news/maint/delgroup de.answers The following newsgroups were missing. comp.binaries.cbm comp.databases.rdb comp.os.geos comp.os.qnx comp.unix.user-friendly misc.legal.moderated news.newsites soc.culture.scientists talk.politics.crypto talk.politics.tibet |
Когда Вы получаете такое сообщение от вашей системы новостей, не отбрасывайте его вслепую. В зависимости от того, кто послал сообщение checkgroups, оно может испытывать недостаток нескольких групп или даже всех иерархий; так что Вы должны быть осторожны относительно удаления любых групп. Если Вы находите группы, перечисленные как отсутствующие, и Вы хотите иметь их на сервере, Вы должны добавить их, используя скрипт addgroup. Сохраните список отсутствующих групп в файле и передайте его следующему небольшому скрипту:
#!/bin/sh # WHOIAM=`whoami` if [ "$WHOIAM" != "news" ] then echo "You must run $0 as user 'news'" >&2 exit 1 fi # cd /usr/lib/news while read group; do if grep -si "^$group[[:space:]].*moderated" newsgroup; then mod=m else mod=y fi /usr/lib/news/maint/addgroup $group $mod done |
В заключение, имеются три сообщения, которые могут использоваться, чтобы выяснить топологию сети. Это sendsys, version и senduuname . Они заставляют C-News возвращать отправителю файл sys, версию программного обеспечения и вывод uuname, соответственно. C-News очень лаконичен относительно сообщения version; он возвращает просто C.
Вы никогда не должны выдавать такое сообщение, если Вы не уверены, что это не может повредить Вашей региональной сети. Ответы сообщениям sendsys могут быстро положить сеть UUCP.
Назад | Глобальное оглавление | Вперед |
Прочие файлы | Локальное оглавление | C-News и NFS |