358 lines
6.3 KiB
HTML
358 lines
6.3 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>Scripts</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
|
|
REL="HOME"
|
|
TITLE="Qmail-Scanner and ClamAV HowTo"
|
|
HREF="index.html"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="Recommended Reading and Other Resources"
|
|
HREF="a299.html"><LINK
|
|
REL="NEXT"
|
|
TITLE="Software"
|
|
HREF="a362.html"></HEAD
|
|
><BODY
|
|
CLASS="appendix"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
SUMMARY="Header navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
>Qmail-Scanner and ClamAV HowTo</TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="a299.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
></TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="a362.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><DIV
|
|
CLASS="appendix"
|
|
><H1
|
|
><A
|
|
NAME="AEN350"
|
|
></A
|
|
>Appendix B. Scripts</H1
|
|
><P
|
|
>These are the scripts contained in this HOWTO. They were created by Jesse
|
|
D. Guardiani, and can be found in his clamd+daemontools HOWTO.</P
|
|
><P
|
|
> <EM
|
|
>Clamdctl</EM
|
|
>
|
|
</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> #!/bin/sh
|
|
|
|
# For Red Hat chkconfig
|
|
# chkconfig: - 80 30
|
|
# description: the ClamAV clamd daemon
|
|
|
|
PATH=/usr/local/clamav/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
|
|
export PATH
|
|
|
|
case "$1" in
|
|
start)
|
|
echo "Starting clamd"
|
|
if svok /service/clamd ; then
|
|
svc -u /service/clamd
|
|
else
|
|
echo clamd supervise not running
|
|
fi
|
|
if [ -d /var/lock/subsys ]; then
|
|
touch /var/lock/subsys/clamd
|
|
fi
|
|
;;
|
|
stop)
|
|
echo "Stopping clamd..."
|
|
echo " clamd"
|
|
svc -d /service/clamd
|
|
if [ -f /var/lock/subsys/clamd ]; then
|
|
rm /var/lock/subsys/clamd
|
|
fi
|
|
;;
|
|
stat)
|
|
svstat /service/clamd
|
|
svstat /service/clamd/log
|
|
;;
|
|
restart)
|
|
echo "Restarting clamd:"
|
|
echo "* Stopping clamd."
|
|
svc -d /service/clamd
|
|
echo "* Sending clamd SIGTERM and restarting."
|
|
svc -t /service/clamd
|
|
echo "* Restarting clamd."
|
|
svc -u /service/clamd
|
|
;;
|
|
hup)
|
|
echo "Sending HUP signal to clamd."
|
|
svc -h /service/clamd
|
|
;;
|
|
help)
|
|
cat <<HELP
|
|
stop -- stops clamd service (smtp connections refused, nothing goes out)
|
|
start -- starts clamd service (smtp connection accepted, mail can go out)
|
|
stat -- displays status of clamd service
|
|
restart -- stops and restarts the clamd service
|
|
hup -- same as reload
|
|
HELP
|
|
;;
|
|
*)
|
|
echo "Usage: $0 {start|stop|stat|restart|hup|help}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
exit 0
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
> <EM
|
|
>/usr/local/clamav/supervise/clamd/run</EM
|
|
>
|
|
</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> vi /usr/local/clamav/supervise/clamd/run
|
|
|
|
#!/bin/sh
|
|
#
|
|
# --------------------------------------------------
|
|
# run
|
|
#
|
|
# Purpose - Start the clamd daemon/service.
|
|
#
|
|
# Author - Jesse D. Guardiani
|
|
# Created - 09/10/03
|
|
# Modified - 09/25/03
|
|
# --------------------------------------------------
|
|
# This script is designed to be run under DJB's
|
|
# daemontools package.
|
|
#
|
|
# ChangeLog
|
|
# ---------
|
|
#
|
|
# 09/25/03 - JDG
|
|
# --------------
|
|
# - Changed clamd user to qscand in compliance with
|
|
# the change to qmail-scanner-1.20rc3
|
|
#
|
|
# 09/10/03 - JDG
|
|
# --------------
|
|
# - Created
|
|
# --------------------------------------------------
|
|
# Copyright (C) 2003 WingNET Internet Services
|
|
# Contact: Jesse D. Guardiani (jesse at wingnet dot net)
|
|
# --------------------------------------------------
|
|
|
|
lockfile="/tmp/clamd" # Location of clamd lock file
|
|
path_to_clamd="/usr/local/sbin/clamd"
|
|
# Location of the clamd binary
|
|
BAD_EXIT_CODE=1 # The exit code we use to announce that something bad has happened
|
|
|
|
# The following pipeline is designed to return the pid of each
|
|
# clamd process currently running.
|
|
get_clam_pids_pipeline=`ps -ax | grep -E "${path_to_clamd}\$" | grep -v grep | awk '{print $1}'`
|
|
|
|
|
|
# --------------------------------------------------
|
|
# Generic helper functions
|
|
# --------------------------------------------------
|
|
|
|
# Basic return code error message function
|
|
die_rcode() {
|
|
EXIT_CODE=$1
|
|
ERROR_MSG=$2
|
|
|
|
if [ $EXIT_CODE -ne '0' ]; then
|
|
echo "$ERROR_MSG" 1>&2
|
|
echo "Exiting!" 1>&2
|
|
exit "$BAD_EXIT_CODE"
|
|
fi
|
|
}
|
|
|
|
|
|
# --------------------------------------------------
|
|
# Main
|
|
# --------------------------------------------------
|
|
|
|
ps_clamd=""
|
|
ps_clamd="$get_clam_pids_pipeline"
|
|
|
|
if [ -n "$ps_clamd" ]; then
|
|
pid_count="0"
|
|
for pid in $ps_clamd
|
|
do
|
|
pid_count=`expr $pid_count + 1`
|
|
done
|
|
|
|
die_rcode $BAD_EXIT_CODE "Error: $pid_count clamd process(es) already running!"
|
|
|
|
fi
|
|
|
|
if [ -e "$lockfile" ]; then
|
|
rm "$lockfile"
|
|
exit_code="$?"
|
|
die_rcode $exit_code "Error: 'rm $lockfile' call failed."
|
|
fi
|
|
|
|
exec /usr/local/bin/setuidgid qscand $path_to_clamd
|
|
|
|
# --
|
|
# END /usr/local/clamav/supervise/clamd/run file.
|
|
# --
|
|
|
|
Create the /usr/local/clamav/supervise/clamd/log/run file:
|
|
|
|
#vi /usr/local/clamav/supervise/clamd/log/run
|
|
|
|
#!/bin/sh
|
|
exec /usr/local/bin/setuidgid qscand /usr/local/bin/multilog t /var/log/clamd
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
> <EM
|
|
>/usr/local/clamav/supervise/clamd/log/run</EM
|
|
>
|
|
</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> #!/bin/sh
|
|
exec /usr/local/bin/setuidgid qscand /usr/local/bin/multilog t /var/log/clamd
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
SUMMARY="Footer navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="a299.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
ACCESSKEY="H"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="a362.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>Recommended Reading and Other Resources</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
> </TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>Software</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |