我目前正在编写脚本,它将根据笔记本电脑插入的网络更改代理和 apt 设置。
问题是,如果我从终端运行脚本,一切都会正常。但是一旦
我将其放置在 中/etc/Networkmanager/dispatcher.d/
,根据系统日志,什么也没有发生。
权限:
-rwxr-xr-x 1 root root 1163年5月30日 12:23 02ifupproxy*
这是脚本:
#!/bin/bash
#Script for proxy auto detection.
aptconf="/etc/apt/apt.conf"
aptconfd="/etc/apt/apt.conf.d/01proxy"
adapter=`ps -ef | grep eth| grep root | awk '{ print $18}'`
ipaddres=`ifconfig $adapter | grep inet\ addr | awk -F ":" '{print $2}' | awk '{print $1}'`
ipaddrA=`echo $ipaddres | awk -F "." '{print $1}'`
ipaddrB=`echo $ipaddres | awk -F "." '{print $2}'`
ipaddrC=`echo $ipaddres | awk -F "." '{print $3}'`
if [ $ipaddrA -eq 192 ] && [ $ipaddrB -eq 168 ] && [ $ipaddrC -ge 129 ] && [ $ipaddrC -le 140 ] ; then
ping -c 3 192.168.143.57
if [ $? -eq 0 ] ; then
if [ -f $aptconfd ] ;then
echo "Acquire::http::Proxy \"http://192.168.143.57:3142\";" > $aptconfd
notify-send -i /usr/share/icons/gnome/32x32/status/network-receive.png Settings\ changed\ for\ Gratex\ Proxy
gsettings set org.gnome.system.proxy mode 'manual'
fi
fi
else
notify-send -i /usr/share/icons/gnome/48x48/status/network-error.png Settings\ changed\ for\ Outside
gsettings set org.gnome.system.proxy mode 'none'
echo "" > $aptconfd
fi
答案1
尝试将脚本放入/etc/network/if-up.d/
如果接口启动则添加路由的示例脚本
# Check for specific interface if desired
[ "$IFACE" != "usb0" ] || exit 0
# Adding additional routes on connection
route add default dev usb0 via 192.168.42.129
route add ...
route add ...