怎样用python实现scp

首先pip获取包:
pip install paramiko

pip install scpclient

然后引入必要包

import paramiko

import scpclient

from contextlib import closing

代码:

首先用param建立一个ssh链接

1 ssh = paramiko.SSHClient()
2 ssh.load_system_host_keys()
3 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
4 ssh.connect(host, port=port, username = username, key_filename = private_key_path)

然后,从这个链接中取出ssh的transport,交给scpclient管理

1 with closing(scpclient.Write(ssh.get_transport(), "~")) as scp:--这个~是设定home为远程工作目录
2     scp.send_file(filepath, True, remote_filename = remote_path)--True意味着保持文件的日期
时间: 2024-11-04 15:55:13

怎样用python实现scp的相关文章

Python配合SCP实现文件批量下发

# -*- coding: utf-8 -*- #!/usr/bin/env python import pexpect,os    #导入需要用到模块 def ssh_cmd(ip, shell_cmd): passwd= '1qaz#EDC' print 'host: %s is connected... ' % ip child = pexpect.spawn('ssh [email protected]%s' % (ip)) fout = file('log.txt','a') chil

python实现scp功能

最近公司有一个需求,需要把服务器A上的任务放到服务器B上,因为B上有HTTP,并且可以被外网访问,但是直接通过shell的scp,每次都需要输入密码.这里用python简单实现一下 直接上代码: import paramiko import sys def deleteRemoteFile(dt): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#第一次登录的认证信息 ssh

Python学习——实现secure copy功能

Linux的scp命令可以实现两个主机之间的文件拷贝功能. 用python实现scp功能. def run_scp(from1, to, passwd, log_file): cmd = "scp %s %s" % (from1, to) p = pexpect.spawn(cmd) if log_file is None: log_file = sys.__stdout__ p.logfile = open_log_file(log_file) basename = os.path.

Python pexpec 解决scp ssh

paswd_key = '.*assword.*'  匹配Password ssh_newkey = '.*(yes/no).*' 匹配 Are you sure you want to continue connecting (yes/no) [python] view plaincopy #!/usr/bin/python2.7 import pexpect import os, sys, getpass def ssh_command(user, host, password, comma

用python实现远程复制 (scp + expect )

scp 功能很强大,但需要人工输入 password, 当然可以通过把 公钥保存在远程主机的 ~/.ssh 目录中,而后就不用输入password,但这需要配置. 用 sshpass 可能在命令输入 password, 但 需要用 “sudo apt-get install sshpass” 安装 如果不想用上面两种方法,可以用 expect 编写脚本可以帮助我们自动交互 虽然 python 也提供 pexpect  模块,但既然 expect 很简单,为何不直接用 os.system() 去执

[python]使用pexpect模块进行批量scp

#!/usr/bin/env python# -*- coding: utf-8 -*- #wangxiaofei #awcloud自动化测试 import time,osimport threadingimport sys threads = [] username = 'root'passwd = 'www.awcloud.com'ssh_ip = ['10.11.11.4', '10.11.11.5', '10.11.11.6', '10.11.11.7' ] try:     impor

Python不同电脑之间传输文件实现类似scp功能不输密码

SCP vs SFTP 通过paramiko还可以传输文件,如何通过paramiko在计算机之间传输文件,通过阅读官方文档,发现有如下两种方式: sftp = paramiko.SFTPClient.from_transport(ssh.get_transport()) sftp = ssh.open_sftp() 即新建一个SFTPClient对象,该对象复用之前的SSH连接,因此,我们使用sftp传输文件时,不需要再次进行用户认证. 文件上传 In [59]: sftp.put('memor

python 学习总结1 线程与进程

第一次写博客 进程的定义: 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本:进程是程序的一次执行活动,属于动态概念. 在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行.这是这样的设计,大大提高了CPU的利用率.进程的出现让每个用户感觉到自己独享CPU,因此,进程就是为了在CPU上实现多道编程而提出的 有了进程为什么还要线程? 进程有很多优

python核心编程--笔记

python核心编程--笔记 的解释器options: 1.1 –d   提供调试输出 1.2 –O   生成优化的字节码(生成.pyo文件) 1.3 –S   不导入site模块以在启动时查找python路径 1.4 –v   冗余输出(导入语句详细追踪) 1.5 –m mod 将一个模块以脚本形式运行 1.6 –Q opt 除法选项(参阅文档) 1.7 –c cmd 运行以命令行字符串心事提交的python脚本 1.8 file   以给定的文件运行python脚本 2 _在解释器中表示最后