📄 innwatch.ctl.5
字号:
.\" $Revision: 1.3 $.TH INNWATCH.CTL 5.SH NAMEinnwatch.ctl \- control Usenet supervision by innwatch.SH DESCRIPTIONThe file.\" =()<.I @<_PATH_CTLWATCH>@>()=.I /var/spool/news/data/innwatch.ctlis used to determine what actions are taken during the periodicsupervisions by.IR innwatch ..PPThe file consists of a series of lines; blank lines and lines beginningwith a number sign (``#'') are ignored.All other lines consist of seven fields, each preceded by a delimitingcharacter:.RS:label:state:condition:test:limit:command:reason.RE.PPThe delimiter can be any one of several non-alphanumeric characters that doesnot appear elsewhere in the line; there is no way to quote it toinclude it in any of the fields.Any of ``!'', ``,'', ``:'', ``@'', ``;'', or ``?'' is a good choice.Each line can have a different delimiter; the first character on each lineis the delimiter for that line.White space surrounding delimiters, except before the first, is ignored,and does not form part of the fields, white space within fields ispermitted.All delimiters must be present..PPThe first field is a label for the control line.It is used as an internal state indicator and in.I ctlinndmessages to control the server.If omitted, the line number is used..PPThe second field specifies when this control line should be used.It consists of a list of labels,and special indicators,separated by whitespace.If the current state matches against any of the labels in this field,this line will be used as described below.The values that may be used are:.IP "\-"This line matches if the current state is the same as the label onthis line, or if the current state is ``run,'' the initial state.This is also the default state if this field is empty..IP "+"This line matches if the current state is ``run.''.IP "*"This line always matches..IP "label"This line matches if the current state is the specified ``label.''.IP "\-label"This line matches if the current state is not the specified ``label.''.PPThe third field specifies a shell command that is invoked if this line matches.Do not use any shell filename expansion characters such as ``*'', ``?'',or ``['' (even quoted, they're not likely to work as intended).If the command succeeds, as indicated by its exit status, it is expectedto have printed a single integer to standard output.This gives the value of this control line, to be used below.If the command fails, the line is ignored.The command is executed with its current directory set to the news spooldirectory,.\" =()<.IR @<_PATH_SPOOL>@ .>()=.IR /var/spool/news/spool ..PPThe fourth field specifies the operator to use to test the value returned above.It should be one of the two letter numeric test operators defined in.IR test (1)such as ``eq'', ``lt'' and the like.The leading dash (`'\-'') should not be included..PPThe fifth field specifies a constant with which to compare the value usingthe operator just defined.This is done by invoking the command.RStest value -operator constant.REThe line is said to ``succeed'' if it returns true..PPThe sixth field specifies what should be done if the line succeeds,and in some cases if it fails.Any of the following words may be used:.IP throttleCauses.I innwatchto throttle the server if this line succeeds.It also sets the state to the value of the line's label.If the line fails, and the state was previously equal tothe label on this line (that is, this line had previously succeeded),then a.I gocommand will be sent to the server, and.I innwatchwill return to the ``run'' state.The ``throttle'' is only performed if the current state is ``run'' or astate other than the label of this line, regardless of whether the commandsucceeds..IP pauseIs identical to ``throttle'' except that the server is paused..IP shutdownSends a ``shutdown'' command to the server.It is for emergency use only..IP flushSends a ``flush'' command to the server..IP goCauses.I innwatchto send a ``go'' command to the server and to set the state to ``run.''.IP exitCauses.I innwatchto exit..PP.IP skipThe result of the control file is skipped for the current pass..PPThe last field specifies the reason that is used in those.I ctlinndcommands that require one.More strictly, it is part of the reason \(em.I innwatchappends some information to it.In order to enable other sites to recognize the state of the local.I inndserver, this field should usually be set to one of several standardvalues.Use ``No\ space'' if the server is rejecting articles because of a lackof filesystem resources.Use ``loadav'' if the server is rejecting articles because of a lackof CPU resources..PPOnce.I innwatchhas taken some action as a consequence of its control line, it skips therest of the control file for this pass.If the action was to restart the server (that is, issue a ``go'' command),then the next pass will commence almost immediately, so that.I innwatchcan discover any other condition that may mean that the server shouldbe suspended again..SH EXAMPLES.RS.nf@@@df .|awk 'NR==2 {print $4}'@lt@10000@throttle@No space@@@df -i .|awk 'NR==2 {print $4}'@lt@1000@throttle@No space (inodes).fi.RE.PPThe first line causes the server to be throttled if the free space dropsbelow 10000 units(using whatever units.I dfuses), and restarted again when free space increases above the threshold..PPThe second line does the same for inodes..PPThe next three lines act as a group and shouldappear in the following order.It is easier to explain them, however, if they are described from the last up..RS.nf!load!load hiload!loadavg!lt!5!go!:hiload:+ load:loadavg:gt:8:throttle:loadav/load/+/loadavg/ge/6/pause/loadav.fi.REThe final line causes the server to be paused if.I innwatchis in the ``run'' state and the load average rises to, or above, six.The state is set to ``load'' when this happens.The previous line causes the server to be throttled when.I innwatchis in the ``run'' or ``load'' state, and the load average rises above eight.The state is set to ``hiload'' when this happens.Note that.I innwatchcan switch the server from ``paused'' to ``throttled'' if the load averagerises from below six to between six and seven, and then to above eight.The first line causes the server to be sent a ``go'' command if.I innwatchis in the ``load'' or ``hiload'' state, and the load average drops below five..PPNote that all three lines assume a mythical command.I loadavgthat is assumed to print the current load average as an integer.In more practical circumstances, a pipe of.I uptimeinto.I awkis more likely to be useful..SH BUGSThis file must be tailored for each individual site, the sample suppliedis truly no more than a sample.The file should be ordered so that the more common problems are tested first..PPThe ``run'' state is not actually identified by the label with that threeletter name, and using it will not work as expected..PPUsing an ``unusual'' character for the delimiter such as ``('', ``*'',``&'', ``\(ga'', ``\(aa'', and the like, is likely to lead to obscure andhard to locate bugs..SH HISTORYWritten by <kre@munnari.oz.au> for InterNetNews..de R$This is revision \\$3, dated \\$4....R$ $Id: innwatch.ctl.5,v 1.3 1993/01/29 16:42:58 rsalz Exp $.SH "SEE ALSO"innd(8),ctlinnd(8),news.daily(8).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -