1=head1 NAME
2
3inncheck - Check INN configuration and database files
4
5=head1 SYNOPSIS
6
7B<inncheck> [B<-afqv>] [B<--noperm> | B<--perm>] [B<--pedantic>]
8[I<file> | I<file>B<=>I<path> ...]
9
10=head1 DESCRIPTION
11
12B<inncheck> examines various configuration files and databases and verifies
13things about them.  Things verified depend on the file being checked,
14but generally are things like permissions, ownership, syntax errors in
15config files, etc.
16
17B<inncheck> does not make changes to any files S<-- it> just reports what
18it thinks may be wrong, and it is up to the operator to fix the problem
19
20The set of files checked may be restricted by using I<file> or
21I<file>B<=>I<path> arguments.  For example, putting C<incoming.conf>
22causes only the F<incoming.conf> file to be checked.  Using
23C<incoming.conf=/tmp/incoming.conf> on the command line will cause
24B<inncheck> to only verify the F<incoming.conf> file, and it will perform
25the checks on the F</tmp/incoming.conf> file instead of the default one.
26Setting a file path to an empty value like C<incoming.conf=> will skip
27the check for that file (this only makes sense with B<-a>, or no files
28will be checked at all).
29
30Valid values for I<file> are:
31
32    active
33    control.ctl
34    control.ctl.local
35    expire.ctl
36    incoming.conf
37    inn.conf
38    innfeed.conf
39    moderators
40    newsfeeds
41    nntpsend.ctl
42    passwd.nntp
43    readers.conf
44    storage.conf
45
46=head1 OPTIONS
47
48=over 4
49
50=item B<-a>, B<--all>
51
52If any I<file> value or I<file>B<=>I<path> pairs (see below) are given,
53then normally only the files they refer to are checked.  Use the B<-a> (or
54B<--all>) flag to specify that I<all> files should be checked regardless.
55In this case the form I<file>B<=>I<path> will be the more useful.
56
57=item B<-f>, B<--fix>
58
59Use the B<-f> flag (or B<--fix>) to have B<inncheck> print the appropriate
60B<chown>/B<chgrp>/B<chmod> command necessary to fix a problem that it
61reports.  Any other output lines will be prefixed with a hash sign (C<#>)
62to make the output be valid input for a shell.  Note that the B<--perm>
63flag must be used as well when using this flag.
64
65=item B<--noperm>
66
67To avoid doing any checking of file permissions or ownership, use the
68B<--noperm> option.
69
70=item B<--pedantic>
71
72Use the B<--pedantic> option to get reports on things that are not necessarily
73wrong, but may indicate a bad configuration, such as F<inn.conf> missing
74a key.
75
76=item B<--perm>
77
78B<inncheck> checks all files for permission problems.  If the B<--perm>
79flag is used, then I<only> the files specified by the I<file> or
80I<file>B<=>I<path> command line arguments will be checked for problems
81other than permission problems.
82
83=item B<-q>, B<--quiet>
84
85Use the B<-q> option (or B<--quiet>) to get less output.
86
87=item B<-v>, B<--verbose>
88
89Use the B<-v> option (or B<--verbose>) to get more verbose output.
90
91=back
92
93=head1 EXAMPLES
94
95To have B<inncheck> check all files for syntax and permission problems
96simply run:
97
98    inncheck
99
100It is recommended to run the following command to be aware of all the
101potential problems B<inncheck> can detect:
102
103    inncheck -a --perm --pedantic
104
105To have B<inncheck> check all files for permission problems and to verify
106the syntax of the F<active> and F<incoming.conf> files, do:
107
108    inncheck --perm active incoming.conf
109
110To fix the permissions problems noted in the output of the above command,
111modify it as follows:
112
113    inncheck -f --perm | sh
114
115(Note that it is useless to mention the name of the two files since
116permission problems are checked on all files.)
117
118To have B<inncheck> check the test F<newsfeeds> file in
119F</var/tmp/newsfeeds.testing>, do:
120
121    inncheck newsfeeds=/var/tmp/newsfeeds.testing
122
123To have B<inncheck> check all the files as it normally does, but to specify
124a different location for the F<newsfeeds> file and omit checking of the
125F<innfeed.conf> file, do:
126
127    inncheck -a newsfeeds=/var/tmp/newsfeeds.testing innfeed.conf=
128
129=head1 BUGS
130
131If the B<-f> and B<--perm> options are used together, along with B<-a> or
132some I<file> or I<file>B<=>I<path> arguments that refer to a file with
133a syntax problem, then the output will no longer be valid input for a shell.
134
135In most cases, B<inncheck> currently does not correctly understand option
136values spanning multiple lines.  If you get error messages about runaway
137quotes, you either have to ignore them and check the correctness of the
138relevant lines yourself, or merge the value into a single line.
139
140=head1 HISTORY
141
142Written by Brendan Kehoe <brendan@cygnus.com> and Rich Salz
143<rsalz@uunet.uu.net> for InterNetNews.  Converted to POD by Julien Elie.
144
145=head1 SEE ALSO
146
147active(5), control.ctl(5), expire.ctl(5), history(5), incoming.conf(5),
148inn.conf(5), innfeed.conf(5), moderators(5), newsfeeds(5), nntpsend.ctl(5),
149passwd.nntp(5), readers.conf(5), storage.conf(5).
150
151=cut
152