网络编程
位置:首页>> 网络编程>> Python编程>> python执行scp命令拷贝文件及文件夹到远程主机的目录方法

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

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

标签:python,scp,主机,目录

系统环境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

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com