source: npl/mailserver/netqmail2/qmailctl @ c5c522c

gcc484ntopperl-5.22
Last change on this file since c5c522c was c5c522c, checked in by Edwin Eefting <edwin@datux.nl>, 8 years ago

initial commit, transferred from cleaned syn3 svn tree

  • Property mode set to 100755
File size: 3.8 KB
Line 
1#! /bin/sh
2#
3# Author:
4#       Guilherme Balena Versiani, guibv@yahoo.com
5#
6# /usr/sbin/qmailctl
7
8. /etc/qmail2.rc.config
9. /etc/qmail2.permissions
10
11SEND=qmail-send2
12SMTP=qmail-smtpd2
13POP3=qmail-pop3d2
14QMQP=qmail-qmqpd2
15QMTP=qmail-qmtpd2
16
17QMAILBIN=/var/qmail2
18
19SERVICES="$SEND $SMTP $POP3 $QMQP $QMTP"
20
21qmail_start() {
22  for service in $SERVICES; do
23    if [ -e /service/$service ]; then
24      if svok /service/$service; then
25        echo -n "$service "
26        svc -u /service/$service
27      else
28        echo -n "$service [error] "
29      fi
30    fi
31  done
32  if [ -d /var/run/subsys ]; then
33    touch /var/lock/subsys/qmail2
34  fi
35}
36
37qmail_stop() {
38  for service in $SERVICES; do
39    if [ -e /service/$service ]; then
40      echo -n "$service "
41      svc -d /service/$service
42    fi
43  done
44  if [ -f /var/lock/subsys/qmail2 ]; then
45    rm -f /var/lock/subsys/qmail2
46  fi
47}
48
49qmail_restart() {
50  $0 stop  &&  $0 start
51}
52
53qmail_pause() {
54  for service in $SERVICES; do
55    if [ -e /service/$service ]; then
56      echo -n "$service "
57      svc -p /service/$service
58    fi
59  done
60}
61
62qmail_continue() {
63  for service in $SERVICES; do
64    if [ -e /service/$service ]; then
65      echo -n "$service "
66      svc -c /service/$service
67    fi
68  done
69}
70
71qmail_status() {
72  for service in $SERVICES; do
73    if [ -e /service/$service ]; then
74      svstat /service/$service
75      svstat /service/$service/log
76    fi
77  done
78  $QMAILBIN/qmail-qstat
79}
80
81qmail_flush() {
82  if [ -e /service/$SEND ]; then
83    svc -a /service/$SEND
84    echo "OK"
85  else
86    echo "No qmail-send found!"
87  fi
88}
89
90qmail_reload() {
91  $QMAILBIN/qmail-qstat
92  $QMAILBIN/qmail-qread
93}
94
95qmail_user() {
96  for I in _0 _1 _2 _3 _4 _5 _6; do
97    eval CUR_USER=\$QMAIL_USER$I
98    USER=`echo "$CUR_USER" | cut -d ':' -f 1`
99    grep "$USER" /etc/passwd > /dev/null && userdel $USER
100  done
101  for I in _0 _1; do
102    eval CUR_GROUP=\$QMAIL_GROUP$I
103    GROUP=`echo "$CUR_GROUP" | cut -d ':' -f 1`
104    grep "$GROUP" /etc/group > /dev/null && groupdel $GROUP
105  done
106  for I in _0 _1; do
107    eval CUR_GROUP=\$QMAIL_GROUP$I
108    GROUP=`echo "$CUR_GROUP" | cut -d ':' -f 1`
109    CGID=`echo "$CUR_GROUP" | cut -d ':' -f 2`
110    groupadd -g $CGID $GROUP
111  done
112  for I in _0 _1 _2 _3 _4 _5 _6; do
113    eval CUR_USER=\$QMAIL_USER$I
114    USER=`echo "$CUR_USER" | cut -d ':' -f 1`
115    CUID=`echo "$CUR_USER" | cut -d ':' -f 2`
116    GROUP=`echo "$CUR_USER" | cut -d ':' -f 3`
117    HOME=`echo "$CUR_USER" | cut -d ':' -f 4`
118    useradd -u $CUID -g $GROUP -d $HOME -s /bin/false $USER
119  done
120}
121
122qmail_showctl() {
123  $QMAILBIN/qmail-showctl
124}
125
126usage() {
127  cat << EOF
128Qmailctl by Guilherme Balena Versiani
129* Portions from Life with Qmail (http://www.lifewithqmail.org/)
130
131Usage: $0 [OPTION]
132
133Available options:
134
135  start    Start all qmail services
136  stop     Stop all qmail services
137  restart  Restart all qmail services
138  status   Show qmail status
139  showctl  Show qmail control status
140  flush    Flush qmail queue
141  queue    Show qmail queue
142  pause    Pause all qmail services
143  cont     Continue all qmail services
144  perms    Check all qmail permissions
145  user     (Re)create all qmail users
146
147Mail bug reports and suggestions to <guibv@yahoo.com>.
148EOF
149}
150
151# First reset status of this service
152case "$1" in
153    start)   echo -n "Starting qmail: "; qmail_start; echo;;
154    stop)    echo -n "Shutting down qmail: "; qmail_stop; echo;;
155    restart) qmail_restart;;
156    status)  echo "Checking qmail status: "; qmail_status;;
157    showctl) qmail_showctl;;
158    flush)   echo "Sending ALRM signal to qmail-send: "; qmail_flush;;
159    queue)   echo "Listing qmail queue: "; qmail_queue;;
160    pause)   echo -n "Pausing qmail: "; qmail_pause; echo "";;
161    cont)    echo "Continuing qmail: "; qmail_continue; echo "";;
162    user)    echo -n "Checking qmail users/groups: "; qmail_user; echo "OK";;
163    perms)   echo -n "Checking qmail permissions: "; qmail_permissions; echo "OK";;
164    *)       usage; exit 1;;
165esac
166
Note: See TracBrowser for help on using the repository browser.