python执行scp命令拷贝文件及文件夹到远程主机的目录方法

作者:lsysafe 时间:2023-07-10 09:12:19 

系统环境centos7

python2.7

先在操作系统安装expect



[root@V71 python]# vi 3s.py

#!/usr/bin/python
#coding:utf-8
import sys,re
import os
import subprocess

#scp file to remote node.
def scpFileToRemoteNode(user,ip,password,localsource,remotedest,port=22):

SCP_CMD_BASE = r"""
     expect -c "
     set timeout 300 ;
     spawn scp -P {port} -r {localsource} {username}@{host}:{remotedest} ;
     expect *assword* {{{{ send {password}\r }}}} ;
     expect *\r ;
     expect \r ;
     expect eof
     "
 """.format(username=user,password=password,host=ip,localsource=localsource,remotedest=remotedest,port=port)
 SCP_CMD = SCP_CMD_BASE.format(localsource = localsource)
 print "execute SCP_CMD: ",SCP_CMD
 p = subprocess.Popen( SCP_CMD , stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
 p.communicate()

os.system(SCP_CMD)

scpFileToRemoteNode("root","192.168.156.72","密码","/tmp/var/log","/etc/",22)

执行脚本:

[root@V71 python]# python 3s.py
execute SCP_CMD:  
     expect -c "
     set timeout 300 ;
     spawn scp -P 22 -r /tmp/var/log root@192.168.156.72:/etc/ ;
     expect *assword* { send 密码\r } ;
     expect *\r ;
     expect \r ;
     expect eof
     "

spawn scp -P 22 -r /tmp/var/log root@192.168.156.72:/etc/
root@192.168.156.72's password:
messages                                                               100% 802KB 802.1KB/s  00:00    

来源:https://blog.csdn.net/lsysafe/article/details/82977634

标签:python,scp,主机,目录
0
投稿

猜你喜欢

  • mysql 获取表有多少列

    2010-10-14 13:44:00
  • Python高阶函数与装饰器函数的深入讲解

    2023-10-04 12:42:41
  • 分享一下SQL Server执行动态SQL的正确方式

    2024-01-14 00:17:56
  • 一键搞定python连接mysql驱动有关问题(windows版本)

    2024-01-18 05:43:29
  • Vue+Websocket简单实现聊天功能

    2024-04-30 10:29:50
  • Python实现身份证前六位地区码对照表文件

    2022-12-25 10:55:16
  • 使用httplib模块来制作Python下HTTP客户端的方法

    2021-03-10 09:27:37
  • XHTML 1.0:标记新的开端

    2023-08-04 21:59:30
  • Python安装第三方库的方法(pip/conda、easy_install、setup.py)

    2022-10-28 13:22:34
  • Pytorch:dtype不一致问题(expected dtype Double but got dtype Float)

    2023-07-05 21:57:33
  • python主线程与子线程的结束顺序实例解析

    2023-10-09 12:46:07
  • Python中模块的使用--binascii模块用法

    2022-11-16 13:53:16
  • http通过StreamingHttpResponse完成连续的数据传输长链接方式

    2023-06-04 03:33:45
  • python 实现图片裁剪小工具

    2022-04-27 18:15:15
  • Golang语言学习拿捏Go反射示例教程

    2023-06-22 23:30:23
  • PHP字符串中提取文件名的实例方法

    2023-06-12 18:57:32
  • 深入理解python 生成器、迭代器、动态新增属性及方法

    2023-11-13 03:04:32
  • Python工程师面试必备25条知识点

    2023-10-31 00:30:53
  • IE下绝对定位的元素不能响应鼠标的bug修正

    2008-09-10 13:03:00
  • Python中match语句的详细用法实例

    2023-06-29 11:28:46
  • asp之家 网络编程 m.aspxhome.com