python 远程执行命令、上传、下载举例

时间:2023-12-31 11:02:26

使用python中的 paramiko 实现远程操作,需要安装 paramiko 模块。

# vi pssh.py

#!/usr/bin/python
#coding=utf-8 '''
Created on Apr 13, 2016 @author: root
''' import paramiko class PSSH(): def __init__(self,ip,sort,username,password): self.ip = ip
self.sort = sort
self.username = username
self.passwrod = password def exec_cmd(self,cmd):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#ssh.connect(hostname, port, username, password, pkey, key_filename, timeout, allow_agent, look_for_keys, compress, sock)
ssh.connect(self.ip,self.sort,self.username,self.passwrod)
stdin,stdout,stderr = ssh.exec_command(cmd)
print stdout.readlines()
ssh.close() def upfile(self,localpath,remotepath):
'''
'''
t = paramiko.Transport((self.ip,self.sort))
t.connect(username= self.username,password=self.passwrod)
sftp = paramiko.SFTPClient.from_transport(t)
sftp.put(localpath,remotepath)
t.close() def downfile(self,remotepath,localpath):
'''
'''
t = paramiko.Transport((self.ip,self.sort))
t.connect(username= self.username,password=self.passwrod)
sftp = paramiko.SFTPClient.from_transport(t)
sftp.get(remotepath,localpath)
t.close() if __name__ == '__main__': pssh = PSSH("192.168.1.77",22,"oracle","oracle");
# pssh.exec_cmd("cat /tmp/a.txt")
#pssh.upfile("/tmp/1.txt", "/tmp/1.txt")
pssh.downfile("/tmp/a.txt", "/tmp/a.txt") print '------success!-----'

测试下载功能

# chmod +x pssh.py
# ./pssh.py
------success!-----
# ll | grep a.txt
-rw-r--r--. 1 root root 4 Apr 13 10:16 a.txt