学校用的是校园网,客户端用h3c,先连接校园网,要用外网的话就要网页认证,然后才能连接外网.
当时装客户端的时候,显示的什么 IP自动刷新脚本安装成功,开机自启动安装成功…等
原来用的是Ubuntu 每次开机进入桌面之后都要手动联网,还能受得了,因为当时不知道开机自启动到底是个什么情况.
换了Fedora后,感觉太牛X了,开机自启动,直接连接上校园网了,我只要再进行一次网页认证就可以了,一直用着很好.
但是前两天因为考试,没用网,用电脑看复习资料的时候,没插网线,然后Fedora就一直卡在蓝白条那里,按F1之后才知道,原来是h3c认证通不过的问题,显示连接超时”time out:5″,然后再一次连接,再超时,再连接,连接5,6次之后就不连了,h3c退出.这时候要么进去系统,要么就会一直闪屏,只能重启.只有插上网线,认证通过才可以进入系统.
我一想,这不麻烦了吗,要是我不用网就进不去系统的话,没网的时候我连个电影都没法看啊,所以最好的办法就是把开机自启动的程序去掉就可以了啊.
首先下载H3C8021X客户端在Linux公社(LinuxIDC.com)的1号服务器。
FTP地址:ftp://www.linuxidc.com
用户名:www.linuxidc.com
密码:www.muu.cc
在2011年LinuxIDC.com\1月\Fedora 13 下 H3C8021X客户端自动配置脚本\
具体下载方法见http://www.linuxidc.net/thread-1186-1-1.html 与 http://www.linuxidc.net/thread-1189-1-1.html
由于一般的 h3c安装包里面的README文件都是说执行
./pre.ps
就可以了,然后再执行
linux1x -c
进行手动配置,又要选择是多播还是广播,还有什么IP自动刷新什么的,新手很害怕这玩意,所以有高手写了一个自动配置这玩意的脚本文件,
但是高手再写这个的时候我估计没有想太多,放了开机自动运行程序还有自动检测程序,所以就出现了我这样的 ,用fedora不插网线就进不去系统的情况,用ubuntu的时候没有出现这样的情况,而且ubuntu不管怎么样,都要进行手动联网,很不爽,当时这是再用了fedora之后才有的感想.
下面就分析分析这个脚本文件有多牛X
#程序主函数部分
declare who1=`whoami`
if [ $who1 != “root” ]
then
echo You are using a non-privileged account;
echo Please change to root user and try again;
exit;
fi
clear
sys_lang=`echo $LANG`
case $sys_lang in
zh_CN*)
menu_chinese
;;
*)
menu_english
;;
esac
首先根据你的系统语言,选择对应语言的安装程序,很周到,呵呵.
然后就调用 menu_chinese函数了
#中文菜单
function menu_chinese
{
declare wrong_input=1;
while [ $wrong_input -eq 1 ]
do
clear
echo “欢迎使用 H3C for Linux 安装引导脚本”
echo “1.安装 H3C for Linux”
echo “2.直接运行 H3C for Linux”
echo “3.卸载 H3C for Linux”
echo “4.退出”
echo -ne “请输入你的选择:”
read menu_choose
case $menu_choose in
1)
wrong_input=0
creat_hold #此函数生成自动重连程序,所以此处可以用#注解掉.
auto_choose
install_chinese
;;
2)
wrong_input=0
run_chinese
;;
3)
wrong_input=0
uninstall_chinese
;;
4)
wrong_input=0
echo “程序结束.”
;;
*)
echo “错误的选择数!”
echo “请重新输入!”
sleep 1
wrong_input=1
;;
esac
done;
}
选择1的话先调用一个creat_hold函数,此函数就是用来生成自动重连程序的,所以一直进不去系统有很大原因是因为他,所以我们再这里把这个函数注解掉,就不会生成自动重连程序了.
然后是一个选择发行版函数,这个很重要.
然后是安装函数.
安装函数有研究
#中文安装函数
function install_chinese
{
declare wrong_pre=0
if test -e “/etc/h3c-linux1x”
then
echo “配置目录已经存在.”
else
mkdir /etc/h3c-linux1x
fi
if test -e “/var/log/h3c-linux1x”
then
echo “日志目录已经存在.”
else
mkdir /var/log/h3c-linux1x
fi
if test -e “/usr/lib/libstdc++-libc6.2-2.so.3”
then
echo “共享库文件已经存在.”
else
declare temp1=`ls /usr/lib/libstdc++* | head -1`
ln -s $temp1 /usr/lib/libstdc++-libc6.2-2.so.3
echo “成功创建库文件软连接.”
fi
if test -e “./renew.ps”
then
{
cp ./renew.ps /usr/local/bin
chmod 755 /usr/local/bin/renew.ps
echo “刷新IP脚本准备就绪.”
}
else
{
echo “无法找到刷新IP脚本!”
echo “请确认’renew.ps’文件存在!”
wrong_pre=1
}
fi
if test -e “./linux1x”
then
cp ./linux1x /usr/local/bin
chmod 755 /usr/local/bin/linux1x
echo “认证程序准备就绪.”
else
echo “无法找到认证程序!”
echo “请确认’linux1x’文件存在!”
wrong_pre=2
fi
autorun_chinese #这里就是症结所在,把这个函数注解掉就不会生成开机自动运行程序了
case $wrong_pre in
0)
echo “安装成功.”
;;
1)
echo “缺少 ‘renew.ps’文件.”
;;
2)
echo “缺少 ‘linux1x’文件.”
;;
*)
echo “安装成功.”
;;
esac
mv hold_h3c.sh /usr/local/bin/ #这句话也要注解掉,因为我们把create_hold函数注解掉了,所以不会生成hold_h3c.sh,会提示找不到文件或目录
killall linux1x
/usr/local/bin/hold_h3c.sh &
/usr/local/bin/linux1x -d
}
这样理论上就把开机自动运行程序和自动重连程序去掉了,但是这样的话,进到桌面还要手动联网啊,写个最简单的sh呗
#!/bin/bash
/usr/local/bin/linux1x -d
ifup eth0
exit 0
然后再用一个启动器链接到这个文件就可以了,先认证h3c,以防网卡没有激活,然后再激活网卡。