python使用(一)-上传到服务器文件的脚本

1、脚本使用
  • 使用场景:使用jmeter做性能测试,需要传jmx脚本到服务器中,且做分布式压测,需要将脚本传到多台服务器中;且因为前期的调试和线程数的不断调整,上传的频率较高,为了提升性能测试效率,编写python脚本,本地执行可一次性将脚本上传至所有的压测服务器
  • 脚本如下:
import paramiko

#创建ssh对象
ssh = paramiko.SSHClient()  
#ssh.load_host_keys("C:/Users/Administrator/.ssh/known_hosts")
#允许连接不在know_hosts文件的主机上
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
filename = "genUid.jmx"
#本地文件路径
localpath = "/Users/xxx/demo/" + filename
#服务器的文件路径
remotepath = "/root/test/" + filename
#可设置多台服务器,尽量服务器的密码保持一致
server = "47.105.193.249,xx.xx.xxx.xxx,xx.xx.xxx.xxx"
words = server.split(",")
for word in words:
  #连接服务器
  ssh.connect(word, username="root", password="xxxxx")
  sftp = ssh.open_sftp()
  sftp.put(localpath, remotepath, callback = None)
  #关闭连接
  ssh.close()
2、paramiko模块
  • paramiko模块,基于SSH用于连接远程服务器并执行相关操作。
2.1、ssh的使用
import ssh
 
# New SSHClient
client = ssh.SSHClient()
 
# Default accept unknown keys
client.set_missing_host_key_policy(ssh.AutoAddPolicy())
 
# Connect
client.connect("xxx.coder4.com", port=22, username="xxxx", password="xxxx")
 
# Execute shell remotely
stdin, stdout, stderr = client.exec_command("ls -alh")
stdout.read()
2.2、sftp的使用
  • 当拿到一个SSHClient后,我们除了执行命令,还可以开启一个sftp的session,用于传输文件、创建文件夹等
# Open sftp session
sftp = client.open_sftp()
 
# Make a dir
sftp.mkdir('abc')
 
# Down file from remote to local 这个可能会抛出异常,如果失败的话
sftp.get('firewall.sh', '/tmp/firewall.sh')
 
# Upload file from local to remote 也可能会抛出异常
sftp.put('/tmp/firewall.sh', 'firewall_new.sh')
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值