postfix und domain mail forwarding

um mails an domains deines server zu echten mail adressen weiterzuleiten, geht mit postfix folgendes:


# öffne /etc/postfix/main.cf 
inet_interfaces = all

# am ende einfügen
virtual_alias_domains = hash:/etc/postfix/virtual_domains
virtual_alias_maps = hash:/etc/postfix/virtual

# in der  /etc/postfix/virtual_domains die domains eintragen
mydomain.com OK
myotherdomain.com OK

# in der  /etc/postfix/virtual die weiterleitungen eintragen (2ter eintrag ist ein catchall)
mail@mydomain.com myrealaddress@gmail.com, myotherrealaddress@gmail.com
@myotherdomain.com myrealaddress@gmail.com

# adde neues mapping zur postmap (wenn noch nicht vorhanden)
$ postmap /etc/postfix/virtual_domains
$ postmap /etc/postfix/virtual

# reload / restart postfix config
$ service postfix reload

beachte das beim testen dieser mails bspw. bei gmail eine loop detection zum einsatz kommt, die verhindert das du mails weitergeleitet bekommst die du mit dem selben gmail account absendest. gmail alias addressen als absender hingegen funktionieren.

mit shell script und diff dateien prüfen

Um durch etwaige Cronjobs eine Prüfung von 2 Dateien und darauf folgende Aktionen zu erzeugen, kann ein shell script Verwendung finden.

#!/bin/bash

SOURCE=/mount/data/new_file.txt
TARGET=/srv/www/vhosts/www/app/config/old_file.txt

diff -i -b -B -q ${SOURCE} ${TARGET}

if [ ! $? -eq 0 ]
then
    echo "new file is different from old one - copy new one to old"
    cp ${SOURCE} ${TARGET}
else
    echo "no difference between files - nothing to do"
fi

Shell Scripting Guide

Hier findet Ihr den Shell Scripting Guide:

freeos.com/guides/lsst/

Dann kann man beispielsweise so kleine Helferlein zum Löschen von Logs und Caches wie diesen hier basteln:

#!/bin/bash
cd `dirname $0` # go to scripts dir
cd .. # step ahead
arr[0]='Application1/app/cache/*'
arr[1]='Application1/var/cache/*'
arr[2]='Application2/application/cache/*'
arr[3]='Application2/application/logs/*'
arr[4]='Application2/pub/tmp/*'
arr[5]='Application3/application/cache/*'
arr[6]='Application3/application/logs/*'
arr[7]='Application3/pub/tmp/*'

i=0
while [ $i -lt ${#arr[@]} ]
do

rm -rf ${arr[$i]}
echo "${arr[$i]} deleted"

(( i=$i+1 ))
done