Linux 北大网关断网重连
2017-03-15 09:43
204 查看
概述
把台式机搬到实验室当服务器用了,买了个极路由插在公网IP上,做一个端口转发,可以随时随地远程ssh这台电脑了。但是问题来了,PKU的网关不稳定,有的时候会断,断了的话这台电脑就连不上网了。于是我利用北大提供的linux shell联网客户端connect, 写了一个脚本,每隔一定时间检测一下网络是否通畅,如果网断了,就自动重新连接。
下载connect客户端
去https://its.pku.edu.cn/download_ipgwclient.jsp下载北大网关linux命令行客户端,chmod 755 connect,然后mv到 /usr/local/bin/目录下:$ wget https://its.pku.edu.cn/pku_gateway_apps/download/linux/connect $ sudo chmod 755 connect $ sudo mv ./connect /usr/local/bin/
编写脚本
$ vim pkunet.py
#!/usr/bin/python #coding=utf8 ''' 本脚本用于定时检查北大校园网关是否联通,如果不联通,则重新连接。 前提是在/usr/local/bin/目录下存在connect客户端。 connect是北大计算中心提供的linux shell客户端,下载地址如下: https://its.pku.edu.cn/download_ipgwclient.jsp @作者: 刘伟杰 @日期: 2017-03-14 ''' import os import time import urllib2 as ulb import logging # settings CHECK_SITE = 'https://www.baidu.com/' TIME_OUT = 3 # 连接超时时间 USER_NAME = 'studentid' PASSWORD = 'password' TIME_INTERVAL = 600 # 每600秒检查一次网络 LOG_FILE = '/home/liuweijie/.pkunet.log' # configuration this_dir = os.path.dirname(os.path.abspath(__file__)) connect_client = '/usr/local/bin/connect' logging.basicConfig( level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S', filename=LOG_FILE, filemode='a' ) def is_connect(): ''' 检测网络是否通畅 ''' try: ulb.urlopen(CHECK_SITE, timeout=TIME_OUT) return True except: return False def connect(): ''' 连接网关 ''' try: os.system('%s -u %s -p %s'%(connect_client, USER_NAME, PASSWORD)) return True except: return False def run(): now = time.strftime('%Y-%m-%d %X', time.localtime()) logging.info('%s: PKUNet start!'%(now)) connect() while True: time_remaining = TIME_INTERVAL - time.time()%TIME_INTERVAL time.sleep(time_remaining) if not is_connect(): now = time.strftime('%Y-%m-%d %X', time.localtime()) logging.warning("%s: Network wrong!"%(now)) is_success = connect() if is_success: logging.info("Network reconnect successfully!") else: logging.warning("Network reconnect Falied!") if __name__ == '__main__': run()
保存脚本, 改变脚本权限, 把脚本移动到/usr/local/bin/目录下
$ sudo chmod 777 pkunet.py $ sudo mv pkunet.py /usr/local/bin/
设置开机执行该脚本
在/etc/init.d/写一个脚本$ cd /etc/init.d/ $ sudo vim pkunet
添加如下内容:
#! /bin/sh /usr/local/bin/pkunet.py &
保存退出,然后改变该脚本权限
$ chmod 755 pkunet
添加到开机启动服务中
$ sudo update-rc.d pkunet defaults 99
重启,这样就好了,每次的log会保存到/home/liuweijie/.pkunet.log中
如果要关闭这个服务
$ sudo update-rc.d -f pkunet.py remove
相关文章推荐
- linux做网关映射指定IP到指定IP
- 用LINUX做在一张软盘上的拨号网关
- linux网关服务器安装步骤
- linux 下网关MAC的查看和配置arp命令
- Linux下命令行设置IP、网关和DNS
- linux网关之流量控制(iptables Qos)
- linux下查看网卡地址和网关
- 基于嵌入式linux和ARM设计的无线家庭网关
- linux 修改IP 网关
- 配置linux网关有关的命令及软件
- linux下 取得本机ip、掩码、网关
- linux 双网卡双网关怎么配置
- 在嵌入式Linux上实现802.11b无线网关[摘自老古]
- LINUX的网关是GATEWAY还是NETWORK?
- 使用Debian Linux操作系统架设网关
- linux-2.4.x上单网卡网关的实现
- Linux 构建sms网关
- linux 获取网关
- LINUX基本配置文件 设置设置IP、网关等