找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 17735|回复: 52

无线自动剔除脚本-弱信号剔除-强信号剔除-自编译x86固件

[复制链接]
发表于 2019-1-29 00:57 | 显示全部楼层 |阅读模式
本帖最后由 401626436 于 2020-6-27 18:10 编辑

各位新年好!恭喜发财大吉大利今晚...我去!
基于shell写的信号衰减比较踢客户端下线脚本,支持弱信号剔除与强信号剔除


根据原帖修改而来,常规感谢一下原作者虽然不知道他是谁男的女的?!原帖传送门
本人小了白了兔一枚,大婶和非大婶们如果不感冒的请离开,愿意留下交流的请指教一二

步入正题
用循环脚本重复运行 pgrep bash 查看进程共有两个进程其中一个就是检测脚本本身也就是说它始终是单线程运行的并且pid不变
脚本间是以传递方式运行的多客户端秒踢不延时,至少目前没发生过死机 。参见 exec 自行百度

#--------------------------------------------------------------------------------------------------------------------------------------------------------------#

镇下楼先
免刷机编译支持一下打包ipk下载

懒得编辑直接换附件 js版文件试例

lua版自己按旧的改吧能让配置输出为以下实现就行,其他懒得改自己根据判断忽略就好!

预编译源码

#--------------------------------------------------------------------------------------------------------------------------------------------------------------#






代码请用电脑查看手机看不到
闪现脚本:
主脚本:自行github上查看恩山编辑好保存就乱码进入传送阵
回调脚本:
  1. #!/bin/sh
  2. COT=0
  3. while [ $COT -le 0 ] #执行循环数
  4. do
  5. COT=`expr $COT + 1` #共循环1次

  6.                 #用于获取无线网卡数量 原理:判断无线配置“wireless”中有几个“ssid”热拔插usb无线网卡易出错
  7.                 a=(`cat /etc/config/wireless | grep -c "ssid"`)

  8.                 #判断检测次数
  9.                 if [ -f "/tmp/kickass/Record" ];then
  10.                 Record=(`cat /tmp/kickass/Record | grep -c "1"`)

  11.                 if [[ "$Record" = "10" ]]; then
  12.                 #获取系统时间
  13.                 system=(`date +%f`)
  14.                 time=${system}

  15.                 #判断条件成立,停止脚本 最终检测 万一发生奇迹呢
  16.                 if [[ "$a" = "0" ]]; then
  17.                 wireless=0
  18.                 echo "$time -----------经过10次检测后---------" >> /var/log/kickass.log
  19.                 echo "$time -----------没有发现无线网卡---------" >> /var/log/kickass.log
  20.                 echo "$time ---------请断电后接入无线网卡------" >> /var/log/kickass.log
  21. fi
  22. fi
  23.                 #无线等于零
  24.                 if [[ "$wireless" = "0" ]]; then
  25.                 rm -f /tmp/kickass/Record
  26.                 exec echo "$time -----------脚本已停止运行-----------" >> /var/log/kickass.log
  27. fi
  28. fi
  29.                 #判断条件成立,跳转至工作主脚本
  30.                 if [[ "$COT" = "1" ]]; then
  31.                 exec bash /usr/share/kickass/Main
  32. fi

  33. done
复制代码


自启动和状态控制脚本:

  1. #!/bin/sh /etc/rc.common
  2. START=50

  3. start()
  4. {
  5.         exec bash /usr/share/kickass/Main &
  6. }

  7. stop()
  8. {
  9.         echo "1" >> /usr/share/kickass/stop
  10.         sleep 1
  11.         cat /usr/share/kickass/stop | sed '$d' > /usr/share/kickass/stop
  12. }

  13. restart()
  14. {
  15.         /etc/init.d/kickass stop
  16.         /etc/init.d/kickass start
  17. }
复制代码
luci脚本:用来查看日志的
lua:
  1. module("luci.controller.kickass", package.seeall)
  2. local fs = require "nixio.fs"
  3. local sys = require "luci.sys"
  4. local template = require "luci.template"

  5. function index()
  6.         entry({"admin", "status", "kickass"}, call("kickass_log"), _("kickass"), 6).leaf = true

  7. end

  8. function kickass_log()
  9.     local logfile = fs.readfile("/var/log/kickass.log") or ""
  10.     template.render("kickass/kickass", {content = logfile})
  11. end
复制代码
html5
  1. <%+header%>
  2. <h2 name="title"><%:Kickass Log%></h2>
  3. <div id="kickass_log">
  4. <textarea  style="width: 100%" readonly="readonly" wrap="off" rows="<%=content:cmatch("\n")+1%>" id="content_id"><%=content:pcdata()%></textarea>
  5. </div>
  6. <%+footer%>
复制代码
中文语言包:
  1. msgid "kickass"
  2. msgstr "剔除日志"

  3. msgid "Kickass Log"
  4. msgstr "无线剔除日志"

  5. msgid "Weak signal remove"
  6. msgstr "弱信号剔除"

  7. msgid "Strong signal remove"
  8. msgstr "强信号剔除"
复制代码
脚本仍然有bug 也不知道shell的数学是谁教的?我很无语比如9必80大7必70大以此类推。。。

官方和lean大佬不停的在更新没钱买硬盘,原本是一块固态加一块466G机械,ubuntu装在机械盘里靠引导进入,进系统偶然发现会死机回windows用DiskGenius检测有坏道然后选了检测修复结果半天过去,发现进度条不动也不知道是软件卡死还是假死也停不了管不掉就任务管理器强行关了,结果硬盘废了数据读不出也写不了更不能格式化,就这样之前的源码也没有了,所以吓的赶紧注册了个“哥艾特很牛B”电脑配置太废只能物理机但只有一块硬盘为了不影响原有系统就搜了关于vhd装ubuntu的教程结果得道了个关键字“wubi"这是一个可以用剩余储存资源装ubuntu的工具第一次是自动的但如果你删了第二次按装就需要自已改引导,工具和固件一起丢网盘了
我的仓库链接剔除脚本完整版传送门
openwrt上开源驱动几乎通用
编译步骤:
1. git clone https://github.com/zaiyuyishiyoudu/luci-app-kickass.git
2. 将luci-app-kickass内的luci-app-kickass复制或剪切到package内粘贴
3. 进入定制界面Applications内勾选luci-app-kickass
4. 根据例子修改wifi.lua添加阀值控制选项
5. 编译不用多说了。。。


软路由x86固件下载
固件说明:


1.除了lean软件包里带有的功能外,添加了syncthing同步和微力同步并且两个都有手机客户端
2.luci的访问默认web服务器依旧是uhttpd,但改由nginx进行代理访问集成现成的php环境和tcpdump usbip
集成可选的大部分无线驱动包括pci的与usb的所已可挂卡中继同网段无线中继等!


3.可以很方便的安装KodExplorer(可道云)站点主目录与luci相同“/www"
3.1.在可道云官网https://kodcloud.com/下载主程序解压到违禁词语,请勿再发磁盘并创建将快捷方式到"/www"
3.2.命令方式:
下载:
比如磁盘是sda1  这个在"挂载点"上查看   建议格式化成ext4方便兼容 ntfs也行但可能会出现显示乱码情况
创建文件夹便于区分:
mkdir  /mnt/sda1/www   "www"是自己取的名称这个随意
wget -P /mnt/sda1/www http://static.kodcloud.com/update/download/kodexplorer4.37.zip
解压:
unzip kodexplorer4.37.zip
赋予777权限:
chmod -Rf 777 ./*
删除下的包:如果你要保留可以不执行这一条
rm /mnt/sda1/www/kodexplorer4.37.zip
创建快捷方式:
ln -s /mnt/sda1/www /www/kdy "kdy"也是自已取的名称随意 之后用ip/kdy 比如http(s)://192.168.1.1/kdy 可以是lan ipv6地址 就可以访问可道云了
固件ipv6的https监听存在ssl问题不能访问http没问题 ipkg与升级固件也存在问题,也不知道是不是官方源码的问题还是换了的luci的原因
usbip百度了一下说是可以通过网络访问局域网内其他设备上的usb设备和插在本机无异速度取决于带宽  教程传送门
wubi传送门
用到的仓库链接:
openwrt官方传送门
lean传送门
liudf0716传送门
Aslin-Ameng传送门
openwrt-develop传送门

本来想收个2nb的,可能是过年没人回复但是看到在我之后发帖的都有人跟帖所以因该或许也许但是好吧!有人看是新人贴觉得肯定写不出什么好东西还收费就特别的反感!
取消收费了!没人看就让他沉水吧!不看是你的"损失"留给需要的人关键字搜索吧!标题已经改成了关键字,实验过是不论恩山还百度都搜不到,只有挖坟贴,通过搜索来到本帖的算你"运气"好!虽然这到时候可能早已过时或链接失效
加点其他东西
linux ubuntu自带工具连接smb ftp 远程终端

如你所见就是这样! 如果你是物理机就不用回widows用winSCP了

远程终端:
初始化连接   ssh-keygen -R ip地址

连接 ssh 用户名@ip地址 提示输入yes同意连接 下次就不会提示了除非变更,然后输入远程用户密码   如果变更那就重新初始化





不用回windows用putty了
scp传输文件:
scp终端所在文件夹文件名 用户名@服务器地址:服务器文件路径

scp -r /home/xxx/xxx/ root@192.168.1.1:/xxx/xxx/

本贴已完!!!
希望能有人写个c版本的并添加详细注释,主要是想学语法,越简单越好复杂了看不懂!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-1-29 20:30 | 显示全部楼层
感谢分享 顶一下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-1-29 23:34 | 显示全部楼层
感谢分享 顶一下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-1-29 23:54 | 显示全部楼层
本帖最后由 kokang 于 2019-1-30 02:34 编辑

WDR7500路由编译固件openwrt-18.06.1刷了几次都没有找到设备选项,也没有剔除日志页面。不知道是什么原因?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-1-30 22:51 | 显示全部楼层
kokang 发表于 2019-1-29 23:54
WDR7500路由编译固件openwrt-18.06.1刷了几次都没有找到设备选项,也没有剔除日志页面。不知道是什么原因?

如果你是通过ipk安装的,设备选项需要修改用于wifi配置的wifi.lua文件照帖子里github上的修改就行,当然你可以直接用我的替换上去但不保证可以兼容比较lua版本不同,至于没有日志输出,在软件包里搜索bash看安装了没有,装好后重启其实方法我都丢压缩包里了!

点评

初步大概过程? 1. 下载 git clone https://github.com/zaiyuyishiyoudu/luci-app-kickass.git 复制luci-app-kickass 到package/自定义目录下 2. 下载的luci例子目录中有wifi.lua 与 feeds/luci/modules/luci-mod-a  详情 回复 发表于 2019-1-31 00:31
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-1-31 00:31 | 显示全部楼层
401626436 发表于 2019-1-30 22:51
如果你是通过ipk安装的,设备选项需要修改用于wifi配置的wifi.lua文件照帖子里github上的修改就行,当然 ...

初步大概过程?
1. 下载 git clone https://github.com/zaiyuyishiyoudu/luci-app-kickass.git 复制luci-app-kickass 到package/自定义目录下
2. 下载的luci例子目录中有wifi.lua 与 feeds/luci/modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi.lua 进行相关比较后 写入相应代码并保存
3. 把闪现脚本kickass.sh 放到package/base-files/files/usr/目录下
4.在本地启动脚本 package/base-files/files/etc/rc.local  增加闪现脚本kickass.sh
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-1-31 00:41 | 显示全部楼层
kokang 发表于 2019-1-31 00:31
初步大概过程?
1. 下载 git clone https://github.com/zaiyuyishiyoudu/luci-app-kickass.git 复制luci- ...

好吧!看来需要普及一下!git clone https:github.com/zaiyuyishiyoudu/luci-app-kickass.git luci-app-kickass内还有一个luci-app-kickass将这个整个复制到package下然后make menuconfig  luci   applications 勾选luci-app-kickass保存编译 你说lua对比修改 是的!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-1-31 01:09 | 显示全部楼层
kokang 发表于 2019-1-31 00:31
初步大概过程?
1. 下载 git clone https://github.com/zaiyuyishiyoudu/luci-app-kickass.git 复制luci- ...

18.06的你可以直接用wifi.lua覆盖原有的,这个本来就是18.06的只是是加了选项

点评

已经覆盖,正在编译中。  详情 回复 发表于 2019-1-31 01:22
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-1-31 01:22 | 显示全部楼层
本帖最后由 kokang 于 2019-1-31 01:36 编辑
401626436 发表于 2019-1-31 01:09
18.06的你可以直接用wifi.lua覆盖原有的,这个本来就是18.06的只是是加了选项

编译好了,现在可以看到日志了,高级设置还有点问题,先玩到这,明天我继续。
2018.08.16-15:51:31 建立用于 wlan0 的无线剔除脚本
2018.08.16-15:52:15 建立用于 wlan1 的无线剔除脚本
2018.08.16-15:52:15 建立用于 wlan2 的无线剔除脚本
2018.08.16-15:52:16 建立用于 wlan3 的无线剔除脚本
2018.08.16-15:52:16 建立用于 wlan4 的无线剔除脚本
2018.08.16-15:52:17 建立用于 wlan5 的无线剔除脚本
2018.08.16-15:52:18 建立用于 wlan6 的无线剔除脚本
2018.08.16-15:52:19 建立用于 wlan7 的无线剔除脚本
2019.01.31-01:32:39 建立用于 wlan8 的无线剔除脚本
2019.01.31-01:32:40 建立用于 wlan9 的无线剔除脚本


点评

你这个明显是不正常的,脚本启动了,无线驱动还没有完成加载导致无线配置没有生成间接导致脚本参考数量出错,但重启后正常 正常应该是有多少热点建多少脚本 重新git clone 一下 限制了检测超时未检测到自动停止不会  详情 回复 发表于 2019-1-31 13:43
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-1-31 13:43 | 显示全部楼层
kokang 发表于 2019-1-31 01:22
编译好了,现在可以看到日志了,高级设置还有点问题,先玩到这,明天我继续。
2018.08.16-15:51:31 建立 ...

你这个明显是不正常的,脚本启动了,无线驱动还没有完成加载导致无线配置没有生成间接导致脚本参考数量出错,但重启后正常 正常应该是有多少热点建多少脚本 重新git clone 一下 限制了检测超时未检测到自动停止不会像这样跑完了

点评

今天反复编译反复刷机,还是出错。 当前出错的地方在于 网络 -- 无线 -- 无线概况 -- 编辑 当点击后,左侧列表点不了,右侧显示不正常。  详情 回复 发表于 2019-1-31 21:04
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-1-31 21:04 | 显示全部楼层
本帖最后由 kokang 于 2019-2-2 16:50 编辑
401626436 发表于 2019-1-31 13:43
你这个明显是不正常的,脚本启动了,无线驱动还没有完成加载导致无线配置没有生成间接导致脚本参考数量出 ...

这两天详细对比了一下,还是出在wifi.lua 文件替换上。现在先编译 集成luci-app-kickass,然后编译完成再去替换wifi.lua文件上。 估计今晚能解决问题。
wifi.lua 路由器的路径 /usr/lib/lua/luci/model/cbi/admin_network/wifi.lua

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-1-31 21:34 | 显示全部楼层
感谢楼主分享~~
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-2-2 18:37 | 显示全部楼层
您好 这个您添加的这两个 syncthing同步和微力同步 有源码吗 想添加到自己的固件中!! 感谢分享!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-2-2 18:47 | 显示全部楼层
x1060703191 发表于 2019-2-2 18:37
您好 这个您添加的这两个 syncthing同步和微力同步 有源码吗 想添加到自己的固件中!! 感谢分享!!

百度搜索进官网下载对应平台的二进制文件制作就好,我就是这么弄的!

点评

二进制主程序是找到了 但是呢 openwrt的 luci没有 不会写这个!!  详情 回复 发表于 2019-2-2 19:22
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-2-2 19:22 来自手机 | 显示全部楼层
401626436 发表于 2019-2-2 18:47
百度搜索进官网下载对应平台的二进制文件制作就好,我就是这么弄的!

二进制主程序是找到了 但是呢 openwrt的 luci没有 不会写这个!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-24 07:14

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表