Sabtu, 25 Februari 2012

Skrip Untuk Menghapus Queue Pada Qmail



Queue merupakan istilah yang digunakan untuk menggambarkan sebuah antrian di mail server. Sebagai System Administrator, kita harus sering-sering mengecek queue pada mail server kita sehingga mail server kita dapat lancar untuk menerima atau mengirim email. Namun, terkadang kita "malas" untuk mengecek queue disebabkan kita harus menuliskan perintah yang cukup panjang dan rumit. Maka dari itu, melalui artikel ini penulis ingin memberikan skrip agar kita bisa menghapus queue secara mudah dan cepat.

Skrip ini penulis peroleh dari teman penulis yang dengan "rajinnya" membuat skrip ini dan dengan izinnya, penulis diizinkan untuk membagi skrip ini ke situs ini. Perlu diketahui bahwa skrip ini bekerja menggunakan file qmHandle yang bisa di dapat di sini dan skrip ini bekerja dengan sangat baik di qmail yang menggunakan metode qmailrocks. Masukkan file qmHandle tersebut ke folder /usr/local/src/ dan berikan chmod 770.
# cp qmHandle /usr/local/src/
# chmod 770 /usr/local/src/qmHandle

Kemudian copy skrip dibawah ini dan beri nama qmqueue dan masukkan di folder /usr/local/bin/.
# vi /usr/local/bin/qmqueue
# chmod 770 /usr/local/bin/qmqueue
Dan ini adalah skripnya:
#!/bin/bash
awal(){
#/var/qmail/bin/qmail-qstat
/usr/bin/clear
echo "=======================================Status======================================="
echo "Services           : "
svstat /service/qmail-send
svstat /service/qmail-send/log
svstat /service/qmail-smtpd
svstat /service/qmail-smtpd/log
svstat /service/qmail-pop3d
svstat /service/qmail-pop3d/log
echo -n "Mess-queue count   : "
/usr/bin/find /var/qmail/queue/mess -type f | wc -l
echo -n "Info-queue count   : "
/usr/bin/find /var/qmail/queue/info -type f | wc -l
echo -n "local-queue count  : "
/usr/bin/find /var/qmail/queue/local -type f | wc -l
echo -n "intd-queue count   : "
/usr/bin/find /var/qmail/queue/intd -type f | wc -l
echo -n "Todo-queue count   : "
/usr/bin/find /var/qmail/queue/todo -type f | wc -l
echo -n "Remote-queue count : "
/usr/bin/find /var/qmail/queue/remote -type f | wc -l

}
opsi(){
echo "=======================================Options======================================="
echo "Select one of the following action number :"
echo "1.  re-Status"
echo "2.  view quee"
echo "3.  view quee in details"
echo "4.  view a message"
echo "5.  stop qmail service"
echo "6.  start qmail service"
echo "7.  delete a message"
echo "8.  delete all messages that have/contain text as Subject"
echo "9.  delete all messages in the queue (local & remote)"
echo "10. restart qmail service"
echo "Press enter or enter any char to exit" 
echo -n "Enter the selection number : "
read act
aksi
}
aksi(){
case "$act" in
1)
  awal
    ;;
2)
  /var/qmail/bin/qmail-qread
  ;;
3)
  echo "Queue details       : "
  /usr/local/src/qmHandle -l -c
  ;;
4)
  echo -n "Enter a message number to view : "
  read nmsg
  if [ -n "$nmsg" ]
  then
    /usr/local/src/qmHandle -m$nmsg
  fi
  ;;
5)
  qmailctl stop
  ;;
6)
  qmailctl start
  ;;
7)
  echo -n "Enter a message number to delete : "
  read nmmsg
  if [ -n "$nmmsg" ]
  then
    /usr/local/src/qmHandle -d$nmmsg
  fi
  ;;
8)
  echo -n "Enter the subject text : "
  read sbj
  if [ -n "$sbj" ]
  then
    /usr/local/src/qmHandle -S$sbj
  fi
  ;;
9)
  /usr/local/src/qmHandle -D
  ;;
10)
  qmailctl stop
  qmailctl start
  ;;
*)
  echo "Exiting..."
  exit 0
  ;;
esac
opsi
}
##Program Utama##
awal
opsi
aksi
exit 1


Cara untuk menjalankannya pun sangat mudah. Hanya tinggal mengetikkan qmqueue, maka akan ada berbagai pilihan. Ketikkan nomor yang dipilih dan tekan enter, maka qmqueue akan bekerja dengan baik.

Referensi:

Teman Sekerja

Tidak ada komentar:

Posting Komentar