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