我是在 Linux (Lubuntu) 上编写脚本的新手,但我想制作一个脚本,仅当我的笔记本电脑连接到我的家庭 wifi 时才运行 cron 作业。
这可能吗?
我想,我可以用 iwconfig 做一些事情,然后用 grep 从那里拉出 ESSID?
到目前为止,我试过这个,它似乎工作:
#!/bin/bash
# CRON, connected to specific WIFI
clear
netid=HOFF216
if iwconfig | grep $netid
then
clear
echo "True, we are connected to $netid"
rsync ...........
else
clear
echo "False, we are not connected to $netid"
fi
Run Code Online (Sandbox Code Playgroud)
我建议无条件运行 cronjob 脚本(即,无论您是否连接到 wifi)。然后脚本本身会检查 wifi 网络,如果您没有连接到正确的网络,则退出。
要检查您连接到哪个网络,我建议使用nmcli. 它会输出如下内容:
[jk@pororo ~]$ nmcli dev wifi列表 SSID BSSID 模式频率信号安全激活 'other-network' <bssid-1> 基础设施 2412 MHz 54 MB/s 32 WPA WPA2 无 'some-other-network' <bssid-2> 基础设施 2412 MHz 54 MB/s 25 WEP 无 'my-network' <bssid-3> 基础设施 2462 MHz 54 MB/s 99 WPA2 是
为了编写脚本,我建议如下:
# extract the essid from nmcli output
essid=$(nmcli dev wifi list | sed -n "s/^'\([^']*\)'.*yes\s*$/\1/p")
# check for my-network, exit otherwise
[ "$essid" == "my-network" ] || exit
# now we know we're connected to my-network
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3203 次 |
| 最近记录: |