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

相关文章

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就像你装备了 无尽、狂徒、杀人书一

[环境配置]ubuntu20.04安装后wifi有图标但是搜不到热点解决方法

最近刚入手一台主机,暗影精灵8plus电竞主机,安装ubuntu后wifi怎么都搜不到热点,前后重装系统6次才算解决问题。这个心酸历程只有搞技术人才明白。下面介绍我解决过程。 首先主机到手后是个windows10系统,我用无线网连接了一下,可以正常上网,说明主机有无限网卡且正常。然后我就直接开始安装Ubuntu20.04了,安装成功后发现wifi有图标但是搜不到热点,我想是不是无线网卡驱动有没有

15 组件的切换和对组件的data的使用

划重点 a 标签的使用事件修饰符组件的定义组件的切换:登录 / 注册 泡椒鱼头 :微辣 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-

71-java 导致线程上下文切换的原因

Java中导致线程上下文切换的原因通常包括: 线程时间片用完:当前线程的时间片用完,操作系统将其暂停,并切换到另一个线程。 线程被优先级更高的线程抢占:操作系统根据线程优先级决定运行哪个线程。 线程进入等待状态:如线程执行了sleep(),wait(),join()等操作,使线程进入等待状态或阻塞状态,释放CPU。 线程占用CPU时间过长:如果线程执行了大量的I/O操作,而不是CPU计算