# scp-batch **Repository Path**: developerhonor/scp-batch ## Basic Information - **Project Name**: scp-batch - **Description**: - 本工具是一个基于 Python 开发的用于跨平台并行传输文件或目录到服务器集群的工具 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-10-09 - **Last Updated**: 2025-11-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SCP跨平台并行传输工具 - 本工具是一个基于 Python 开发的用于跨平台拷贝文件或者目录到服务器集群的并行传输工具 ## 功能特点 - 支持从YAML配置文件读取多台服务器的连接信息 - 采用线程池并发传输,旨在提高传输效率 - 支持自定义超时时间 - 支持拷贝结果统计摘要 - 支持离线运行模式(至少要求 Python 3.6.8 以上版本) ## 安装依赖 - Python 版本至少要求 `3.6.8` 以上 ### 在线安装 ```bash # Windows cd scp-batch python -m venv .venv pip install -r requirements.txt # Linux python -m venv .venv pip install -r requirements.txt # MacOS python -m venv .venv pip install -r requirements.txt ``` ### 离线运行模式 - 该工具支持离线运行模式,无需在目标服务器上安装依赖包。 **准备工作(在有网络的环境中):** # 获取工具 - 从 gitee 或者 gitcode 或者 github 获取 ``` # gitee # gitcode # github ``` 1. 已自动下载依赖包到`site-packages`目录 **使用方法:** ```bash cd scp-batch python scpbatch.py -s <本地文件路径> -d <远程文件路径> [配置文件路径] ``` ## 配置文件格式 配置文件`config.yaml`的格式如下: ```yaml # 服务器名称(可选) # 服务器IP地址(必需) # SSH端口(默认22) # 用户名(必需) # 密码 # 连接超时时间(秒,默认10) hosts: - name: "服务器1" ip: "192.168.1.10" port: 22 user: "admin" password: "xxxx" timeout: 10 - name: "服务器2" ip: "192.168.1.101" port: 2222 user: "root" password: "xxxxxxx" timeout: 10 # - name: "服务器n" # ip: "x.x.x.x" # port: xx # user: "xx" # password: "xxxxxxx" # timeout: xx ``` ## 示例 ```bash # 使用默认配置文件 python scp_batch_copy.py -s local_file.txt -d /home/user/remote_file.txt -c config.yaml ``` ## 日志记录 脚本会同时输出日志到控制台和 `logs` 目录中的日志文件中。 ## 注意事项 1. 请确保配置文件中的密码信息安全存储 2. 对于大量服务器的拷贝操作,可能需要调整线程池大小 3. 确保本地文件存在且有读取权限 4. 确保目标服务器上的目标路径存在且有写入权限