我的python自动化测试机脚本中要实现修改远程linux机器上文件的内容,我的思路:
1. 我原来用过下面的函数可实现诸如获取远程机器上日志信息的脚本,就是通过在cmd中写入linux下的tail 命令来获取日志信息,于是我想到了scp命令,在本地修改文件,把修改好的文件通过scp到远程linux机器,但是遇到了问题:scp执行后需要手动输入远程机器的密码,中断了自动化,网上有解决的办法使不用输入密码验证,但看了感觉好麻烦,后来放弃了,如果朋友们觉得可行可帮我补充上,大家一起讨论
2. 后来想到了用wget获取更新的文件内容并保存到远程linux上,注意前提是本地机器上要有web服务器且服务已启动,我用的是nginx,所以才能用wget从这台机器的指定目录下下载内容
cmd="wget -O 远程linux机器放修改后文件的地方 本地机器修改后的文件地址”
调用下面的函数ssh_cmd(ip,port,user,passwd,cmd):
3. 试了一下,可以成功,真高兴
4. 现在都是远程操作机器执行一条linux命令,不知道能不能一次远程就能在远程机器上执行多条命令,待研究
附上远程操作函数:
def ssh_cmd(ip,port,user,passwd,cmd):
out = None
ssh = None
try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip,port,user,passwd,timeout=5)
stdin, stdout, stderr = ssh.exec_command(cmd)
out = stdout.readlines()
except Exception, e:
error('ssh_cmd error: ' %e)
finally:
if ssh:
ssh.close()
return out
阅读(4453) | 评论(0) | 转发(0) |