Ranjan Maitra:

Wietse Venema:

Corrected code follows (missing do/done).

Save to file, chmod +x name-of-file, don't run this script from cron.

It needs to be started at boot time, or before you make a VPN connection.

#!/bin/sh

while :
do
    ifconfig xxx | egrep 'UP|DOWN'
    sleep 2
done | while read status
do
    case "$status" in
  *UP*) if [ "$prev" -ne up ]
        then
            prev=up
            postconf -X defer_transports
            postfix reload
        fi;;
     *) if [ "$prev" -ne down ]
        then
            prev=down
            postconf defer_transports=smtp
            postfix reload
        fi;;
    esac
done

        Wietse


line 10: [: : integer expression expected

Line10: is  the following line:

 *UP*) if [ "$prev" -ne up ]


Wietse wrote earlier that this was "totally untested code".

You should replace the two "-ne" with "!=".

Also, $prev has not been assigned the first time the second loop ("while read status do ... done") is executed. So you should add "prev=down" before the "while :".

Finally, note that you should also replace the "xxx" (in "ifconfig xxx") with the actual name if your VPN interface, typically "tun0" or "tap0".

Gregory

Reply via email to