Python的scp小工具

scp简单实现

scp是我们在shell上经常使用的命令,用来远程传输文件。python上也能做到scp的功能,需要依赖以下库:

  • pip install paramiko
  • pip install scpclient

实际实现也就几行代码:

    #创建ssh访问
    ssh = paramiko.SSHClient()
    ssh.load_system_host_keys()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#允许连接不在know_hosts文件中的主机
    ssh.connect(hostname, port=22, username=zhangsan, password=password)#远程访问的服务器信息
   
    #创建scp
    with closing(scpclient.Write(ssh.get_transport(), remote_path=remote_path)) as scp:
        scp.send_file(local_filename, preserve_times=True, remote_filename=remote_filename) 

其中,ssh.connect()中需要指定远程访问的服务器的ip端口,用户名以及密码;scpclient.Write()中指定远程服务器的路径remote_pathscp.send_file()中指定本地传输的文件名(全路径),远程主机的文件名remote_filename。大概就是这些地方需要注意的。

进阶小工具

小工具的目的是能够好用,所以我增加了几个cli命令,可以在运行工具的时候输入本地路径以及文件名。当然cli命令是可以增加的:

parser = argparse.ArgumentParser(description='scp function for .pkg between two servers')
    parser.add_argument('--path', type=str, dest='path',default = os.path.dirname(os.path.realpath(__file__)),help='pkg path:default is current path')
    parser.add_argument('--file', type=str, dest='file',default = None, help='pkg filename: must be specified !')

可以看看效果:

Python的scp小工具_第1张图片
scpy.png

是不是很简单 #附上�源码

你可能感兴趣的:(Python的scp小工具)