IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 第五节 树莓派EC20自动拨号脚本编写 -> 正文阅读

[系统运维]第五节 树莓派EC20自动拨号脚本编写

1. ppp拨号脚本

拨号脚本比较简单,主要是拨号和重连,主要分为以下步骤

  • 先用 lsusb 检查驱动
lsusb | grep Quectel

这样查询结果中包含Quectel才会显示,若没有则不显示

在这里插入图片描述
可以看出两个命令的区别

  • 开始拨号
echo "raspberry" | sudo wvdial ec20_ppp&

脚本中使用 sudo wvdial ec20_ppp& 考虑到使用root权限输入密码则需要使用这条命令,”raspberry“为密码
  • 检查路由列表,并添加默认路由
若有ppp0网卡,则添加为默认路由

route -n | grep ppp0

echo "raspberry" | sudo route add default dev ppp0

若超时未检测到路由,则重启模块
  • ping百度,检查网络连通
ping -I ppp0 -c 1 baidu.com

若无法ping通,超时则重启

上面主要是对脚本的拨号内容想法说明


创建脚本

//先创建脚本文件
mkdir ec20-ppp.sh

//编写脚本
...

//脚本运行,后台运行
bash ec20-ppp.sh&

脚本开头必须 #! /bin/bash

#! /bin/bash

#运行步骤变量初始化
ec20_step=0

#超时计数初始化
over_time=0

#循环
while [ 1 ]
do
#第一步先检查驱动
	if [ $ec20_step -eq 0 ]; then
	#使用lsusb查看是否有ec20驱动 grep查询结果是否包含Quectel
			result=$(lsusb | grep Quectel)
			if [[ $result =~ "EC25" ]]; then
					ec20_step=1
			else
					ec20_step=0
			fi
			#延时2s
			sleep 2
#第二步 开始使用wvdial拨号
	elif [ $ec20_step -eq 1 ]; then
			echo "raspberry" | sudo wvdial ec20_ppp&
			ec20_step=2

			sleep 2
#第三步 查询路由是否包含ppp0网卡,拨号成功则会包含有ppp0网卡
	elif [ $ec20_step -eq 2 ]; then
			result=$(route -n | grep ppp0)
			if [[ $result =~ "ppp0" ]]; then
					#若包含网卡,则添加默认路由
					echo "raspberry" | sudo route add default dev ppp0
					ec20_step=3
					over_time=0
			else
				#超时计数
					let over_time++
			fi
			#若一分钟都没有路由网卡则说明没有拨号成功
			if [ $over_time -eq 12 ]; then
					over_time=0
					#超时拨号则跳入重启步骤
					ec20_step=4
			fi

			sleep 5
#第四步 通过ping命令检查网络状态
	elif [ $ec20_step -eq 3 ]; then
			result=$(ping -I ppp0 -c 1 baidu.com)
			if [[ $result =~ "1 received" ]]; then
					over_time=0
			else
					#
					let over_time++

			fi
			#超时则杀掉拨号线程,并进入重启步骤
			if [ $over_time -eq 6 ]; then
					over_time=0
					ec20_step=4
					echo "raspberry" | sudo pkill wvdial
			fi
ec
			sleep 5

#第五步重启模块
	elif [ $ec20_step -eq 4 ]; then
			echo -e "AT+CFUN=1,1\r\n" > /dev/ttyUSB2
			ec20_step=0
			#重启命令后延时稍微长一点
			sleep 15
	fi

done
exit 0

若要开机启动,则加入启动项

sudo vim /etc/rc.local

//在文件exit 0前加入此句,:wq保存,重启即可生效
bash /home/pi/ec20/ec20-ppp.sh

2. qmi_wwan拨号脚本

基本上与上面一样,注意脚本里面quectel-CM的路径,还有不一样的前两节拨号里面已经讲过了

#! /bin/bash

ec20_step=0
over_time=0
while [ 1 ]
do
	if [ $ec20_step -eq 0 ]; then
			result=$(lsusb | grep Quectel)
			if [[ $result =~ "EC25" ]]; then
					ec20_step=1
			else
					ec20_step=0
			fi

			sleep 2

	elif [ $ec20_step -eq 1 ]; then
			echo "raspberry" | sudo /home/pi/ec20/quectel-CM/./quectel-CM&
			ec20_step=2

			sleep 2

	elif [ $ec20_step -eq 2 ]; then
			result=$(ip route)
			if [[ $result =~ "wwan0" ]]; then
					ec20_step=3
					over_time=0
			else
					let over_time++
			fi

			if [ $over_time -eq 12 ]; then
					over_time=0
					ec20_step=4
					echo "raspberry" | sudo pkill quectel-CM
			fi

			sleep 5

	elif [ $ec20_step -eq 3 ]; then
			result=$(ping -I wwan0 -c 1 baidu.com)
			if [[ $result =~ "ttl" ]]; then
					over_time=0
			else
					let over_time++

			fi

			if [ $over_time -eq 4 ]; then
					over_time=0
					ec20_step=4
					echo "raspberry" | sudo pkill quectel-CM
			fi

			sleep 5

	elif [ $ec20_step -eq 4 ]; then
			echo -e "AT+CFUN=1,1\r\n" > /dev/ttyUSB2
			ec20_step=0

			sleep 15
	fi


done
exit 0

3. 注意说明

上面两个脚本的内容可根据自己的想法去编写,上面只是一个最简单使用示例,检测效率并不是很高,实际生产使用,还需要考虑更为全面一些。
编写脚本时多查询一些脚本语言的格式和使用方式。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 18:25:00  更:2022-04-18 18:27:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:22:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码