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

相关文章

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 网络的名称。比如

React实现原生APP切换效果

《React实现原生APP切换效果》最近需要使用Hybrid的方式开发一个APP,交互和原生APP相似并且需要IM通信,本文给大家介绍了使用React实现原生APP切换效果,文中通过代码示例讲解的非常... 目录背景需求概览技术栈实现步骤根据 react-router-dom 文档配置好路由添加过渡动画使用

Spring Boot实现多数据源连接和切换的解决方案

《SpringBoot实现多数据源连接和切换的解决方案》文章介绍了在SpringBoot中实现多数据源连接和切换的几种方案,并详细描述了一个使用AbstractRoutingDataSource的实... 目录前言一、多数据源配置与切换方案二、实现步骤总结前言在 Spring Boot 中实现多数据源连接

MyBatis 切换不同的类型数据库方案

下属案例例当前结合SpringBoot 配置进行讲解。 背景: 实现一个工程里面在部署阶段支持切换不同类型数据库支持。 方案一 数据源配置 关键代码(是什么数据库,该怎么配就怎么配) spring:datasource:name: test# 使用druid数据源type: com.alibaba.druid.pool.DruidDataSource# @需要修改 数据库连接及驱动u

解决Office Word不能切换中文输入

我们在使用WORD的时可能会经常碰到WORD中无法输入中文的情况。因为,虽然我们安装了搜狗输入法,但是到我们在WORD中使用搜狗的输入法的切换中英文的按键的时候会发现根本没有效果,无法将输入法切换成中文的。下面我就介绍一下如何在WORD中把搜狗输入法切换到中文。

企业安全之WiFi篇

很多的公司都没有安全团队,只有运维来负责整个公司的安全,从而安全问题也大打折扣。我最近一直在给各个公司做安全检测,就把自己的心得写下来,有什么不足之处还望补充。 0×01  无线安全 很多的公司都有不怎么注重公司的无线电安全,有钱的公司买设备,没钱的公司搞人力。但是人的技术在好,没有设备的辅助,人力在牛逼也没有个卵用。一个好的路由器、交换机、IDS就像你装备了 无尽、狂徒、杀人书一