Файл control ctl Файл control
Файл control.ctl
Файл control.ctl довольно прост. Правила синтаксиса для этого файла аналогичны правилам для прочих файлов INN. Строки, начинающиеся с # игнорируются, строки могут быть продолжены, используя символ переноса /, поля разделяются двоеточиями (:).
Когда сообщение управления будет получено, оно будет проверено по каждому правилу в файле. Используется последнее подходящее совпадение, так что Вы должны поместить любые универсальные правила в начало файла и более специфические правила в конце. Общий синтаксис файла:
message:from :newsgroups: action |
Поля имеют смысл: message
Имя контрольного сообщения. Типичные сообщения описаны ниже.
fromОбразец в стиле оболочки, соответствующий e-mail адресу отправителя сообщения. Адрес будет преобразован в нижний регистр перед сравнением.
newsgroupsЕсли пришло сообщение newgroup или rmgroup, это поле хранит соответствие образца в стиле оболочки (shell-style) с именем соответствующей группы.
actionЭто поле определяет, какое действие выполнять для любого сообщения, соответствующего правилу. Имеется множество действий, которые мы можем выполнить, они будут описаны ниже.
Поле message каждой строки может иметь одно из значений:
checkgroupsПредписывает администраторам новостей синхронизировать их базы данных активных групп со списком в сообщении.
newgroupСоздать новую группу. Сообщение должно содержать короткое описание создаваемой группы новостей.
rmgroupУдалить группу новостей.
sendsysПереслать файл sys с этого сервера новостей отправителю сообщения. RFC-1036 заявляет, что это требование членства в Usenet. Эта информация должна быть публично доступна потому, что она используется для построения карты Usenet.
versionВернуть отправителю сообщения имя хоста и версию программного обеспечения сервера новостей.
allСоответствует любому типу сообщений управления.
Поле message может также включать любые следующие действия:
doitЗапрошенная команда выполняется. Во многих случаях будет послано e-mail сообщение администратору, чтобы уведомить его о выполнении.
doit=fileАналог doit, но сообщение протокола пишется в файл протокола с именем file. Если в качестве имени файла задано mail, протокол отсылается по e-mail. Если в качестве имени задана пустая строка, сообщение будет записано в дыру памяти /dev/null, эквивалентно использованию неквалифицированного действия doit. Если строка file начинается с символа /, имя считается абсолютным (путевым или полным). В противном случае указанное имя транслируется в /var/log/news/file.log.
doifargЗапрошенная команда выполняется, если имеет параметр. Если команда не имеет никакого параметра, сообщение управления игнорируется.
dropЗапрошенная команда игнорируется.
logСообщение протокола будет послано на stderr процессом innd. Это обычно направляется в файл /var/log/news/errlog.
log=fileАналог log, но файл протокола определен согласно правилам, заданным для действия doit=file.
mailБудет послано e-mail сообщение администратору новостей, содержащее запрошенные команды. Никаких других действий не будет выполнено.
verify-*Если действие начинается со строки "verify-", то сообщение управления заверено, используя PGP (или GPG).
Пример простого файла control.ctl:
## Sample /etc/news/control.ctl ## ## Warning: You should not use this file, it is illustrative only. ## ## Control Message Handling all:*:*:mail checkgroups:*:*:mail ihave:*:*:drop sendme:*:*:drop sendsys:*:*:log=sendsys senduuname:*:*:log=senduuname version:*:*:log=version newgroup:*:*:mail rmgroup:*:*:mail ## Handle control messages for the eight most important news heirarchies ## COMP, HUMANITIES, MISC, NEWS, REC, SCI, SOC, TALK checkgroups:*:comp.*|humanities.*|misc.*|news.*|rec.*|sci.*|soc.*|talk.*:drop newgroup:*:comp.*|humanities.*|misc.*|news.*|rec.*|sci.*|soc.*|talk.*:drop rmgroup:*:comp.*|humanities.*|misc.*|news.*|rec.*|sci.*|soc.*|talk.*:drop checkgroups:group-admin@isc.org:*:verify-news.announce.newgroups newgroup:group-admin@isc.org:comp.*|misc.*|news.*:verify-news.announce.newgroups newgroup:group-admin@isc.org:rec.*|sci.*|soc.*:verify-news.announce.newgroups newgroup:group-admin@isc.org:talk.*|humanities.*:verify-news.announce.newgroups rmgroup:group-admin@isc.org:comp.*|misc.*|news.*:verify-news.announce.newgroups rmgroup:group-admin@isc.org:rec.*|sci.*|soc.*:verify-news.announce.newgroups rmgroup:group-admin@isc.org:talk.*|humanities.*:verify-news.announce.newgroups ## GNU ( Free Software Foundation ) newgroup:gnu@prep.ai.mit.edu:gnu.*:doit newgroup:news@*ai.mit.edu:gnu.*:doit rmgroup:gnu@prep.ai.mit.edu:gnu.*:doit rmgroup:news@*ai.mit.edu:gnu.*:doit ## LINUX (Newsfeed from news.lameter.com) checkgroups:christoph@lameter.com:linux.*:doit newgroup:christoph@lameter.com:linux.*:doit rmgroup:christoph@lameter.com:linux.*:doit |