def step_100msh0286(self): #修改请求管理接口的时间间隔为1分钟 content = ['0 2 * * * /bin/rand_upgrade_msh\n', '0 4 * * * /sbin/rand_reboot\n', '0 6 * * * /etc/init.d/sysntpd restart\n', '*/1 * * * * /sbin/get_manage\n', '0 1 * * * /sbin/cwifi_pwd\n'] modify_remote_file('/etc/crontabs/','root',content) #重启路由定时机制 ssh.ssh_cmd2('/etc/init.d/cron restart') time.sleep(10) #上传tcpdump到路由器 #上个用例已经上传了,这里就不再上传了 d = data.ssh_user() #tcpdump_control.scp_to_remote('./data/BHU_tcpdump/tcpdump',d[0],d[1],d[2],'/usr/sbin/') #tcpdump_control.scp_to_remote('./data/BHU_tcpdump/libpcap.so.1.3',d[0],d[1],d[2],'/usr/lib/') #ssh登录路由输入tcpdump抓包 wanlog = capture_wan_packet() #将抓到的封包传输回本地pc tcpdump_control.scp_to_local(d[0],d[1],d[2],wanlog,'./data/') #打开本地下载的文件,读取文件内容 f = open('./data/wanlog') log = f.read() f.close() '''#获取路由网关ID gw = general_control.get_gatewayId(self) #路由mac r_mac = ssh.ssh_cmd2("ifconfig eth0 | grep HWaddr | awk '{print$5}'") R_MAC = r_mac.upper() #路由版本 r_version = ssh.ssh_cmd2('cat /etc/version/version') R_VERSION = r_version.upper() #路由无线mac wlan_mac = ssh.ssh_cmd2("ifconfig wlan0 | grep HWaddr | awk '{print$5}'") WLAN_MAC = wlan_mac.upper()''' #正确的patch信息字符如下 patch_str1 = 'GET /manage/patch?gw_id=' #patch_str2 = '%s&route_mac=%s&route_version=%s&patch_md5='%(gw,R_MAC,R_VERSION) #正确的manage信息字符如下 manage_str1 = 'GET /manage/manage?gw_id=' #manage_str2 = '%s&route_mac=%s&route_version=%s&manage_md5='%(gw,R_MAC,R_VERSION) if (patch_str1 and manage_str1) in log: #patch和manage信息在log信息中,说明有管理接口请求,结果赋值1 result = 1 else: #patch和manage信息不在log信息中,说明没有管理接口请求,结果赋值0 result = 0 #结果返回给函数 return result
def modify_remote_file(dir,filename,content): #调用ssh的默认登录ip,用户名和密码 d = data.ssh_user() #登录remote主机下载需要修改的文件 tcpdump_control.scp_to_local(d[0],d[1],d[2],dir+filename,'./data/') #登录remote主机并备份文件 ssh.ssh_cmd3(d[1],d[0],d[2],'mv %s%s %s%s_backup'\ %(dir,filename,dir,filename)) print '备份remote主机的文件%s%s成功'%(dir,filename) #在本地打开下载的文件,清空原内容并写入需要新内容 public_control.modify_file('./data/%s'%filename,content) #通过scp再传输给remote主机 tcpdump_control.scp_to_remote('./data/%s'%filename,d[0],d[1],d[2],dir) print '修改remote主机文件%s%s成功'%(dir,filename) #删除本地到文件 subprocess.call('rm -rf ./data/%s'%filename,shell=True)
def step_100msh0287(self): #修改门户认证的检查间隔为60s general_control.set_checkInterval(self,'60') general_control.apply(self) time.sleep(60) #上传tcpdump到路由器 #调用ssh的默认登录ip,用户名和密码 d = data.ssh_user() tcpdump_control.scp_to_remote('./data/BHU_tcpdump/tcpdump',d[0],d[1],d[2],'/usr/sbin/') tcpdump_control.scp_to_remote('./data/BHU_tcpdump/libpcap.so.1.3',d[0],d[1],d[2],'/usr/lib/') #ssh登录路由输入tcpdump抓包 wanlog = capture_wan_packet() #将抓到的封包传输回本地pc tcpdump_control.scp_to_local(d[0],d[1],d[2],wanlog,'./data/') #打开本地下载的文件,读取文件内容 f = open('./data/wanlog') log = f.read() f.close() '''#获取路由网关ID gw = general_control.get_gatewayId(self) #路由mac r_mac = ssh.ssh_cmd2("ifconfig eth0 | grep HWaddr | awk '{print$5}'") R_MAC = r_mac.upper() #路由版本 r_version = ssh.ssh_cmd2('cat /etc/version/version') R_VERSION = r_version.upper() #路由无线mac wlan_mac = ssh.ssh_cmd2("ifconfig wlan0 | grep HWaddr | awk '{print$5}'") WLAN_MAC = wlan_mac.upper()''' #正确的心跳ping信息字符如下 ping_str1 = 'GET /index/ping/?gw_id=' #ping_str2 = 'route_mac=%s&route_version=%s&wlan_mac_0=%s'%(R_MAC,R_VERSION,WLAN_MAC) if ping_str1 in log: #ping信息在log信息中,说明有心跳信息,结果赋值1 result = 1 else: #ping信息不在log信息中,说明没有心跳信息,结果赋值0 result = 0 #结果返回给函数 return result