@node Administration
+@cindex administration
@unnumbered Administration
NNCP uses following files/directories you should be aware of:
Partly transferred files are stored with @file{.part} suffix. And
possibly they also require cleanup if they are completely lost.
- Also it can contain @file{.seen} files, that should be cleaned too
- from time to time.
+ It can contain @file{.nock} files: fully downloaded, but still not
+ checksummed. Can be checksummed (with @file{.nock} extension removing)
+ with @command{@ref{nncp-check} -nock}.
- All of that cleaning tasks can be done with @ref{nncp-rm} utility.
+ Also it can contain @file{seen/} and @file{hdr/} subdirectories,
+ that should be cleaned too from time to time.
+ All of that cleaning tasks can be done with @command{@ref{nncp-rm}} utility.
+
+ @cindex shared spool
+ @cindex setgid
+ @pindex umask
@anchor{Shared spool}
If you want to share single spool directory with multiple grouped
Unix users, then you can @command{setgid} it and assure that umask
@ref{Log} file, for example @file{/var/spool/nncp/log}. It should be
rotated. Choose you own preferable way to do it.
+ @pindex newsyslog
Example @url{https://www.newsyslog.org/manual.html, newsyslog}'s entry:
@example
-/var/spool/nncp/log 644 7 100 * CYN
+/var/spool/nncp/log 644 7 100 * BCYN
@end example
@item
Optional @ref{CfgIncoming, incoming} directories where uploaded
- files are stored. Probably you want to run @ref{nncp-reass} from
- time to time to reassemble all chunked uploads. Example crontab
+ files are stored. Probably you want to run @command{@ref{nncp-reass}}
+ from time to time to reassemble all chunked uploads. Example crontab
entry:
@example
*/1 * * * * nncp-reass -all -noprogress
@end example
+@pindex daemontools
+@pindex supervise
+@pindex multilog
@item
- Possibly long running @ref{nncp-daemon}, @ref{nncp-caller},
- @ref{nncp-toss} daemons. As all software, they can fail and you
- should place them under some supervisor control.
+ Possibly long running @command{@ref{nncp-daemon}},
+ @command{@ref{nncp-caller}}, @command{@ref{nncp-toss}},
+ @command{@ref{nncp-check}} daemons. As all software, they can
+ fail and you should place them under some supervisor control.
For example you can use @url{http://cr.yp.to/daemontools.html,
daemontools} for that task to run them under probably existing
@verb{|uucp|} user:
@example
-# mkdir -p /var/service/nncp-toss/log
-# chmod 755 /var/service/nncp-toss/log /var/service/nncp-toss
-# cd /var/service/nncp-toss
+# mkdir -p /var/service/.nncp-toss/log
+# cd /var/service/.nncp-toss
-# cat > run_ <<EOF
+# cat > run <<EOF
#!/bin/sh -e
exec 2>&1
exec setuidgid uucp /usr/local/bin/nncp-toss -cycle 10
EOF
-# chmod 755 run_
-# cat > log/run_ <<EOF
+# cat > log/run <<EOF
#!/bin/sh -e
exec setuidgid uucp multilog t ./main
EOF
-# chmod 755 log/run_
-# mv log/run_ log/run ; mv run_ run
+# chmod -R 755 /var/service/.nncp-toss
+# mv /var/service/.nncp-toss /var/service/nncp-toss
@end example
+@pindex inetd
@item
- @ref{nncp-daemon} can also be run as
+ @command{@ref{nncp-daemon}} can also be run as
@url{https://en.wikipedia.org/wiki/Inetd, inetd} service on UUCP's port:
@example
-uucp stream tcp6 nowait nncpuser /usr/local/bin/nncp-daemon nncp-daemon -quiet -inetd
+uucp stream tcp6 nowait nncpuser /usr/local/bin/nncp-daemon nncp-daemon -quiet -ucspi
+@end example
+
+@cindex UCSPI
+@pindex tcpserver
+@item
+ Or it can be also run as a @command{daemontools} daemon under
+ @url{http://cr.yp.to/ucspi-tcp.html, UCSPI-TCP}. In the example
+ below it uses native daemontools's logging capability:
+
+@example
+# mkdir -p /var/service/.nncp-daemon/log
+# cd /var/service/.nncp-daemon
+
+# cat > run <<EOF
+#!/bin/sh -e
+NNCPLOG=FD:4 exec envuidgid nncpuser tcpserver -DHRU -l 0 ::0 uucp \
+ /usr/local/bin/nncp-daemon -quiet -ucspi 4>&1
+EOF
+
+# cat > log/run <<EOF
+#!/bin/sh -e
+exec setuidgid uucp multilog ./main
+EOF
+
+# chmod -R 755 /var/service/.nncp-daemon
+# mv /var/service/.nncp-daemon /var/service/nncp-daemon
@end example
@end itemize