在Windows上编写一个Python脚本,使用paramiko库连接到Linux机器,然后执行文件同步命令。

可以使用Python的paramiko库实现在Windows上与Linux机器之间的文件传输。具体步骤如下:

  1. 安装paramiko库

可以使用pip命令安装paramiko库,命令为:

复制pip install paramiko
  1. 编写脚本

以下是示例代码:

复制import os
import paramiko
import time

# 定义本地和远程目录
local_path = '/path/to/local/dir'
remote_path = '/path/to/remote/dir'

# 定义Linux机器的IP地址和登录信息
ip_list = ['192.168.1.100', '192.168.1.101']
username = 'username'
password = 'password'

# 创建SSH客户端
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 定义同步函数
def sync_files():
    # 遍历Linux机器列表
    for ip in ip_list:
        client.connect(ip, username=username, password=password)

        # 获取本地目录下的文件列表
        files = os.listdir(local_path)

        # 遍历本地文件列表,将文件同步到远程目录
        for file in files:
            local_file_path = os.path.join(local_path, file)
            remote_file_path = os.path.join(remote_path, file)

            # 判断是否为目录,如果是则递归同步
            if os.path.isdir(local_file_path):
                # 创建远程目录
                stdin, stdout, stderr = client.exec_command('mkdir -p ' + remote_file_path)
                stderr_lines = stderr.readlines()
                if len(stderr_lines) > 0:
                    print(stderr_lines)
                # 递归同步子目录
                sync_files(local_file_path, remote_file_path)
            else:
                # 同步文件
                sftp = client.open_sftp()
                sftp.put(local_file_path, remote_file_path)
                sftp.close()

# 同步文件,每隔5分钟同步一次
while True:
    sync_files()
    time.sleep(300)

上述代码中,定义了本地目录和远程目录的路径,以及Linux机器的IP地址列表和登录信息。然后通过paramiko库创建SSH客户端,遍历Linux机器列表,连接到每台Linux机器。接着定义了一个同步函数,用于将本地目录下的文件同步到远程目录。在while循环中调用同步函数,每隔5分钟同步一次。

  1. 运行脚本

在Windows上运行脚本即可实现定时同步文件和文件夹至多台Linux机器。可以使用Windows的计划任务功能,或者使用第三方定时任务软件,如cron等。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值