python scp 批量同步文件的实现方法
更新时间:2019年01月03日 12:07:00 作者:亦非我所愿丶
今天小编就为大家分享一篇python scp 批量同步文件的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
该脚本用于将源主机列表路径下的所有文件同步于目标主机的/tmp下面
#!/usr/bin/python # -*- coding:utf-8 -*- import pexpect import os import os.path src_path = ['/tmp/', '/opt/', '/root/'] dest_host = "192.168.143.201" dest_path = "/tmp" for path in src_path: file_list = os.listdir(path) for files in file_list: f = path + files cmd = 'scp -r %s %s:%s' % (f, dest_host, dest_path) scp = pexpect.spawn(cmd) scp.read()
下面的脚本基于第一个脚本做了补充,通过字典列出源主机的路径及对应目标主机的路径 key —> value 的映射关系,并且会去远端进行目录是否存在的检测,以及文件同步过程的详细输出。
#!/usr/bin/python
# -*- coding:utf-8 -*-
import pexpect
import os
import os.path
path_dict = {'/tmp/': '/tmp1/', '/opt/': '/opt1/', '/data/': '/data1/'}
dest_host = "192.168.143.201"
def src_to_dest(path_dict, dest_host):
''' 该脚本用于将主机 /tmp,/opt,/data 下的所有文件同步至远程主机 /tmp1,/data1,/opt1 '''
for path in path_dict:
file_list = os.listdir(path)
cmd = 'ssh %s "[ -d %s || mkdir -p %s ]"' % (dest_host, path_dict[path], path_dict[path])
ssh = pexpect.spawn(cmd)
ssh.read()
#dest_path = "ssh %s '[ -d %s ] || mkdir -p %s'" % (dest_host, path_dict[path], path_dict[path])
#os.system(dest_path)
for files in file_list:
src_file = path + files
print src_file + ' ---> ' + dest_host + ':' + path_dict[path] + files
cmd = 'scp -r %s %s:%s' % (src_file, dest_host, path_dict[path])
scp = pexpect.spawn(cmd)
scp.read()
src_to_dest(path_dict, dest_host)
以上这篇python scp 批量同步文件的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Python中使用pymysql连接MySQL数据库进行数据查询
在当今数字化时代,数据的重要性不言而喻,而数据库作为数据存储与管理的核心工具,在各类应用系统中扮演着关键角色,Python 作为一种广泛使用的编程语言,提供了多种与数据库交互的方式,其中 pymysql 库是连接 MySQL 数据库的常用选择之一,需要的朋友可以参考下2025-01-01


最新评论