cPanel sunucularda otomatik olarak Mail IP adresini değiştiren bir bash script'e rastladım. Bu scripti paylaşmak istedim. crontab'e ekleyerek periyodik çalıştırabilirsiniz.

Script, /etc/mailipaddrpool dosyasındaki IP listesini kullanır ve /etc/mailips içindeki *: satırını sıradaki IP ile günceller.

#!/bin/bash
# Exim Outgoing IP address rotator
# The cPanel Admin 5/9/11
# Files: /etc/mailipaddrpool : list of IP addresses to use for mail

ipfile=/etc/mailipaddrpool
curip=$(grep "*:" /etc/mailips |awk '{print $2}')

if [[ "$curip" == "" ]] || ! grep $curip $ipfile >/dev/null ; then
	curip=$(tail -1 $ipfile)
fi

nextipct=$(cat $ipfile |grep -A 1 $curip |wc -l)

if [ "$nextipct" == "1" ];then
	nextip=$(head -1 $ipfile)
else
	nextip=$(cat $ipfile |grep -A 1 $curip | tail -1)
fi

sed '/*:/d' -i /etc/mailips
sed '/^$/d' -i /etc/mailips
echo "*: $nextip" >> /etc/mailips

Örnek crontab girişi (her saat çalıştırır):

0 * * * * /root/scripts/rotate-mail-ip.sh >/dev/null 2>&1

Notlar:

  • /etc/mailipaddrpool içinde her satıra bir IP gelecek şekilde listeler.
  • Exim servisinin yapılandırmasına göre değişiklikten sonra servisi yeniden yüklemek gerekebilir: service exim reload veya systemctl reload exim.

Bu Yazıyı Paylaş: