On Fri, 17 Apr 2020 08:05:28 +0000 Gregory Heytings <[email protected]> wrote:
>
> 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".
>
Yes, thanks very much for this. He did say untested code, but it has been very
helpful!
Btw, for me, when ifconfig is DOWN, I do not get a down.
$ ifconfig xxx | egrep 'UP|DOWN'
xxx: error fetching interface information: Device not found
while:
$ ifconfig xxx | egrep 'UP|DOWN'
xxx: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1406
when it is up, with xxx being replaced by the name of the VPN tunnel.
I think I am going to modify the script to try:
$ nmcli connection show --active | grep xxx | echo $?
which is 0 or 1 depending on up or down.
Many thanks again for all the help from everyone, and best wishes,
Ranjan
--
Important Notice: This mailbox is ignored: e-mails are set to be deleted on
receipt. Please respond to the mailing list if appropriate. For those needing
to send personal or professional e-mail, please use appropriate addresses.