如果连接到 Ubuntu 中的特定 SSID,则执行某些操作

c0r*_*0rp 3 bash networking

我想编写一个 bash 脚本,如果我连接到特定的 wifi ssid,它将推迟 Dropbox 自动同步。我如何才能捕捉到此事件:例如,我在家工作并且同步已打开,如果我在另一个地方(咖啡馆、工作等),则自动同步已关闭。

另外我想根据wifi ssid做一些其他任务。

cha*_*aos 6

例如,您可以编写一个/etc/NetworkManager/dispatcher.d/包含内容的调度程序脚本(未测试):

#!/bin/bash
# nm sets this values
INTERFACE=$1
ACTION=$2

SSID="yourssid"
ESSID=`iwconfig $INTERFACE | grep ESSID | cut -d":" -f2 | sed 's/^[^"]*"\|"[^"]*$//g'`

if [ "$INTERFACE" == "wlan0" ]; then
  if [ "$SSID" == "$ESSID" ] && [ "$ACTION" == "up" ]; then
    #activate dropbox sync
  else
    #deactivate dropbox sync
  fi
fi
Run Code Online (Sandbox Code Playgroud)