Armbian切换Wifi

2023-12-19 02:28
文章标签 切换 wifi armbian

本文主要是介绍Armbian切换Wifi,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

找了个盒子刷了Armbian,主要有两个作用,一个是做离线下载和SMB。另外一个作用是用来搞打印服务器,因为家里角落比较多,因此有两个路由器信号,而打印机所在的位置的wifi信号,外网速度并不好,因此想到平时盒子做下载机,就把盒子放到角落A,需要打印就把盒子放到角落B,然而不管是在角落A还是在角落B,两个wifi信号都可以接受到,但是我发现Armbian并不能主动切换到wifi信号更好的热点,因此写一个脚本来切换wifi

#!/bin/bash# 我的两个wifi的密码都一样
wifi_pwd="xxxxxx"# 定义函数查询热点信号,参数是wifi ssid
get_wifi_signal() {local ssid=$1echo "获取wifi:$ssid的信号情况"wifi_signal=''#一个wifi名称,可能对应两项(5G/2.4G),awk同时过滤掉已经连接上的connect_status=$(nmcli dev wifi list | grep $ssid | awk 'NR==1 {print $1}')if [ connect_status != '*' ];thenwifi_signal=$(nmcli dev wifi list | grep $ssid | awk 'NR==1 {print $7}')else# 说明当前行wifi是连接上的wifi_signal=$(nmcli dev wifi list | grep $ssid | awk 'NR==1 {print $8}') fi# 注意定义函数返回值时echo和return的区别和调用函数获取返回值的区别return $wifi_signal
}# 定义切换wifi函数
switch_wifi() {# 查询两个热点的信号get_wifi_signal yun# 获取函数上一步的操作结果yun_signal=$?get_wifi_signal apap_signal=$?echo "搜到的热点信号强度[ap=$ap_signal , yun=$yun_signal]"# 查看当前连接的热点名称current_conn=$(nmcli device status | grep wlan0 | grep -v disconnected | awk '{print $4}')if [ $current_conn = 'ap' ]; thenecho '当前连接的热点是[ap],判断当前热点信号强度是否小于[yun],如果小于切换到yun热点'if [ $ap_signal -lt $yun_signal ]; thenecho '当前连接的热点信号小于另一个热点信号,切换到另一个热点'nmcli device wifi connect yun password $wifi_pwdfielif [ $current_conn = 'yun' ]; thenecho '当前连接的热点是[yun],判断当前热点信号强度是否小于[ap],如果小于切换到ap热点'if [ $yun_signal -lt $ap_signal ]; thenecho '当前连接的热点信号小于另一个热点信号,切换到另一个热点'nmcli device wifi connect ap password $wifi_pwdfielseecho '当前未连接任何热点'  fi
}#############Main###########
while true; doecho "=======$(date +"%Y-%m-%d %H:%M:%S")开始执行热点检测,确保连上信号最好的热点======"# 检测是否有指定的两个或以上热点(考虑双频合一)wifi_count=`nmcli dev wifi list | grep -E 'yun|ap' | wc -l`#使用==进行字符串比较时,它区分大小写。如果不区分大小写的比较,可以使用=操作符if [ wifi_count = 1 ]; thenecho '只搜索到一个热点,不再处理'elseswitch_wififisleep 600
done

把脚本放到crontab中执行就可以了,可以使用crontab中可以使用@reboot关键字

这篇关于Armbian切换Wifi的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/510587

相关文章

全屋WiFi 7无死角! 华硕 RP-BE58无线信号放大器体验测评

《全屋WiFi7无死角!华硕RP-BE58无线信号放大器体验测评》家里网络总是有很多死角没有网,我决定入手一台支持Mesh组网的WiFi7路由系统以彻底解决网络覆盖问题,最终选择了一款功能非常... 自2023年WiFi 7技术标准(IEEE 802.11be)正式落地以来,这项第七代无线网络技术就以超高速

SpringBoot实现多环境配置文件切换

《SpringBoot实现多环境配置文件切换》这篇文章主要为大家详细介绍了如何使用SpringBoot实现多环境配置文件切换功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 示例代码结构2. pom文件3. application文件4. application-dev文

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)

《JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)》本文介绍了如何在Windows系统上配置多版本JDK(以JDK8和JDK17为例),并通过图文结合的方式给大家讲解了详细步骤,具有... 目录第一步 下载安装JDK第二步 配置环境变量第三步 切换JDK版本并验证可能遇到的问题前提:公司常

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如