Showing posts with label script send mail. Show all posts
Showing posts with label script send mail. Show all posts

Tuesday, December 29, 2020

Script check quemail stuck on server and alert mail to mailadmin for resolve

vim checkquemail.sh

---------------------------------Start---------------------------------------------

#!/bin/bash

#Start check quemail on system

PATHCHECK="/home/user/quemail.txt"

/usr/sbin/postqueue -p |tail -n 1 > $PATHCHECK && /usr/sbin/postqueue -p |grep "^[A-F0-9]" |sort -k5rn -k6n >> $PATHCHECK

#If found quemail stuck on systems and then send mail alert to Systemadmin

#Set the variable which equal to zero

prev_count=0

count=$(grep 'MAILER' $PATHCHECK | wc -l)

#check word 'MAILER' on text file on path $PATHCHECK if more than 0 do next step

if [ "$prev_count" -lt "$count" ] ; then

# Send a mail to given email id when errors found in log

#SUBJECT="WARNING: found $count quemail was stuck on mailgw, pls check now "`date --date='yesterday' '+%b %e'`""

SUBJECT="WARNING: found $count quemail was stuck on mailgw, pls check now."

#This is a temp file, which is created to store the email message.

MESSAGE="/tmp/logs.txt"

FROM="noreply@domain.com"

TO="mailadmin@domain.com"

echo "ATTENTION: found that there are $count mail queues in the system left to be sent for urgent inspection." >> $MESSAGE

echo "Server: `hostname`" >> $MESSAGE

echo "\n" >> $MESSAGE

echo "+------------------------------------------------------------------------------------+" >> $MESSAGE

echo "$count mail queues" >> $MESSAGE

echo "+------------------------------------------------------------------------------------+" >> $MESSAGE

grep -i "`date --date='yesterday' '+%b %e'`" $PATHCHECK | grep 'MAILER' $PATHCHECK >>  $MESSAGE

#list quemail stuck on system

mutt -s "$SUBJECT" -e "my_hdr From: Server Info <noreply@domain.com>" -- "$TO" < $MESSAGE

rm $MESSAGE

fi

---------------------------End Script----------------------------------

Create crontab for run script

---------crontab -e --------

# m h  dom mon dow   command

*/30 * * * * /home/user/./checkquemail.sh

#check every 30 minute

--------


Ref: https://www.2daygeek.com/linux-bash-script-to-monitor-messages-log-warning-error-critical-send-email/


Thursday, March 21, 2019

ปรับแต่งสคริป send mail alert โดยให้ส่งผ่าน smtp ที่ต้องการ

ปรับแต่งสคริป เพื่อให้ส่งเมลผ่านไปยัง smtp ที่เราทำไว้สำหรับส่งเมล ไม่ให้ส่งออกจากเครื่อง Server นั้น ๆ

สคริป

echo "Check all health hard disk backup complete" | mail -S smtp=IP:PORT -s "Check smart disk on Data Center was completed" -r noreply@domain.com -q /root/checkhealthdisk.txt -v admin@domain.com

คำอธิบาย


  • echo "Check all health hard disk backup complete" ใส่ข้อความเข้าไปในส่วนล่างสุดของเมล
  • mail -S smtp=IP:PORT ใส่ค่า smtp server ที่ต้องการเช่น 192.168.0.2 และพอร์ต 25 ตัวอย่าง 192.168.0.2:25
  • -s "Check smart disk on Data Center was completed" คือ Subject mail
  • -r noreply@domain.com คือ Sender mail
  • -q /root/checkhealthdisk.txt คือ กรณีมีไฟล์ที่ต้องการแนบไปในเมล
  • -v admin@domain.com คือ Receive mail (ผู้ร้บเมล)