我必须向多台 Linux 计算机添加多个 AP 和密码,并且需要自动化执行此操作。最近我编写了一个 bash 脚本来将配置写入文件中,/etc/NetworkManager/system-connections/
例如系统生成的文件。但没有成功。
例子:
AP.txt
我有一个包含 MAC 地址、SSID 和密码的文件:
xx:xx:xx:xx:xx:x1;ssid1;pass1
xx:xx:xx:xx:xx:x2;ssid2;pass2
xx:xx:xx:xx:xx:x3;ssid3;pass3
xx:xx:xx:xx:xx:x4;ssid4;pass4
和多台机器:
pc1
pc2
pc3
...
我想制作一个脚本将这些AP自动添加到我的计算机中,以便每台机器都可以自动连接到最近的AP。
答案1
假设您有 root ssh 密钥设置和本地生成的模板,请使用此进行统计;
for HOST in $HOSTS ; do
scp wifi-templates/* $HOST:/etc/NetworkManager/system-connections/
ssh $HOST 'U=$(ls -1 /home/ | head -n 1); perl -pi -e "s/(permissions=user:)you(:;)/$1'$U'$2/g" /etc/NetworkManager/system-connections/*'
done
模板;
while read L ; do
SSID=$(echo $L | cut -d ";" -f 1)
N=$(echo $L | cut -d ";" -f 2)
PASS=$(echo $L | cut -d ";" -f 3)
cp template $N
perl -pe 's/SSID/'$SSID'/g;s/PASS/'$PASS'/g' $N
done < AP.txt
*此代码仅用于演示(未经测试,可能需要调整才能工作)请在使用前阅读每个命令的手册页;