python复制window共享文件到linux,利用Python3在Windows同步文件到Linux服务器

之前一直搞JavaEE,在本地开发修改的文件,经常需要同步到自己的Linux服务器上,由于有时候修改比较频繁,网络也不是特别好,所以都不是直接一个war包扔到服务器。

虽然WinSCP等工具已经有同步文件夹功能,不过自己还是闲得搞了一个,也顺便练练手。。。功能也还没WinSCP等工具那么强大,只能同步指定路径下的所有文件。。以后再慢慢改

用的是Python3.5,paramiko2.0

#!-*- coding: utf-8 -*-

"""

练手小程序

"""

import json

import paramiko

import os

def list_file(file_path):

return [file for file in os.listdir(file_path) if os.path.isfile(os.path.join(file_path, file))]

sync_file_count = 0

HOST_IP = "服务器IP"

HOST_PORT = 22

USERNAME = "登录名"

PASSWORD = "密码"

with open("config.json") as config_file:

path_config = json.load(config_file)

print("读取配置文件成功!")

try:

transport = paramiko.Transport((HOST_IP, HOST_PORT))

transport.connect(username=USERNAME, password=PASSWORD)

sftp = paramiko.SFTPClient.from_transport(transport)

print("连接远程服务器成功!")

print("*******************************同步文件--开始")

for path in path_config:

local_path = path["local_path"]

server_path = path["server_path"]

print(">>>>>>>>>>>>>>>遍历本地文件--开始")

filenames = list_file(local_path)

print(filenames)

print(">>>>>>>>>>>>>>>遍历本地文件--结束")

for filename in filenames:

sftp.put(local_path + filename, server_path + filename)

print("已同步本地文件: \"" + local_path + filename + "\" 到服务器路径:\"" + server_path + filename + "\"")

sync_file_count += 1

print("*******************************同步文件--结束")

finally:

sftp.close()

transport.close()

print("已经全部同步完成!一共同步了 " + str(sync_file_count) + " 个文件!")

还有个配置文件,配置本地目录地址,和远程目录地址

[

{

"local_path":"G:/Java/",

"server_path":"/home/java/"

},

{

"local_path":"G:/out/",

"server_path":"/home/out/"

}

]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值