博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
arch开机自动认证
阅读量:5980 次
发布时间:2019-06-20

本文共 1871 字,大约阅读时间需要 6 分钟。

  hot3.png

          前几天搞了一下开机自启动认证。环境是arch。学校的认证是H3C的,但学校官方给的linux版认证客户端臃肿且只支持ubuntu、rehat及衍生版。好在已经大牛解决这一问题,出了个小巧的python版的认证客户端yah3c

        运行yah3c只要在终端输入sudo yah3c即可,但是因为用了sudo,必定还要手工输入密码,而且运行yah3c时还有一处要选择是否新建账号或者使用哪一个已经使用过的账号。要想实验开机自启动认证,就得先除去这两个输入。

        首先是sudo的密码输入除去,此外后面用到的ethtool也要除去输入密码。运行sudo visudo 加入

$USER  ALL=NOPASSWD: /usr/bin/yah3c,  /usr/sbin/ethtool

  即可。

    然后是判断网线是否接上了,如没接上则直接退出。当连上网线时,sudo ethool eth0 的输出中会有 “L:ink detected yes”的字符串,所以检查的代码如下:

islink=`sudo ethtool eth0 | grep 'Link detected: yes'`if [ -z "$islink" ]then   exitfi

        因为yah3c只是认证,还要用networkmanager或者dhcp自动获取一下ip。我这里用的是networkmanager,命令如下 :

nmcli con up id "有线连接的名称"

        然后还要考虑一下如果第一次认证时失败了能让它循环认证。我判断是否认证成功的方法是看能否获取到ip。检查ip可以用ifconfig再用正则表达式扣出来。代码如下:

ifconfig eth0 | grep inet | grep -v inet6 | grep -v 127.0.0.1 | awk '{print $2}

        再考虑到有可能在无线网络的环境,所以还要检测一下能否通过wlan0得到ip,若能得到,则退出循环,避免死循环。

if [ -z $theip ]  then       theip=`ifconfig wlan0 | grep inet | grep -v inet6 | grep -v 127.0.0.1 | awk '{print $2}'` fi

       再考虑网络阻塞一直连接不上的状况,要设置个超时时间,避免一直循环着浪费cpu     

所以最后的脚本如下:

#!/bin/bashislink=`sudo ethtool eth0 | grep 'Link detected: yes'`if [ -z "$islink" ]then   exitfitheip='';time=`date +%s`difftime=0while [[ -z $theip && $difftime -lt 60 ]]do    echo 1 | sudo yah3c &    nmcli con up id "Wired connection 1"    sleep 2    theip=`ifconfig eth0 | grep inet | grep -v inet6 | grep -v 127.0.0.1 | awk '{print $2}'`    sleep 1    if [ -z $theip ]    then        theip=`ifconfig wlan0 | grep inet | grep -v inet6 | grep -v 127.0.0.1 | awk '{print $2}'`    fi    let "difftime=`date +%s`-$time"    echo $difftimedone

  再最后就是把脚本放到合适的地方。我用的是kde环境,在kde环境准备好后会自动运行 ~/.kde4/Autostart/文件夹下的脚本。所以我便把脚本放到那。

        需要说明的是,kde在执行Autostart下的脚本时,在执行下一个任务时,会关闭前一个任务。所以sudo yah3c后面的&不可或缺,他将告诉系统在后台执行yah3c。我之前就是因为少了这个&导致没能保留yah3c进程因而开机自启动认 证几分钟后就掉线了。

        另外,我觉得开机自启动还是一个比较笨的方法的,如果能在第一次检测到有网线连接时启动脚本,那就perfect了

        如果你有更好的方法,请告知我。

   

转载于:https://my.oschina.net/chliny/blog/79358

你可能感兴趣的文章
VI快捷键攻略
查看>>
漫谈几种反编译对抗技术
查看>>
CMD 修改Host文件 BAT
查看>>
android幻灯片效果实现-Gallery
查看>>
实现Instagram的Material Design概念设计
查看>>
CentOS 6.x 快速安装L2TP ***
查看>>
一篇文章能够看懂基础源代码之JAVA篇
查看>>
Goldengate双向复制配置
查看>>
Oracle官方内部MAA教程
查看>>
DNS相关配置
查看>>
miniWindbg 功能
查看>>
CF772E Verifying Kingdom
查看>>
第二次冲刺 第七天
查看>>
测试驱动开发
查看>>
【Udacity】线性回归方程 Regression
查看>>
轻松实现远程批量拷贝文件脚本(女学生作品)
查看>>
【沟通之道】头脑风暴-女人的心思你别猜
查看>>
Windows Phone 8 开发资源汇总
查看>>
Git:配置
查看>>
神经系统知识普及
查看>>