将远程服务器文件同步到本地 Windows

这个脚本通过 Plink 连接远程服务器,查找以 daily- 开头文件并将其下载到本地,使用 PSCP 执行文件传输,整个过程完全自动化。脚本的主要功能步骤如下:

  1. 定义服务器和文件路径:指定远程服务器地址、路径和本地存储目录。
  2. 查找文件:使用 Plink 在远程服务器上查找符合条件的文件(例如,文件名以 daily- 开头)。
  3. 文件下载:如果找到目标文件,则使用 PSCP 将其下载到本地。
  4. 删除原文件:下载完成后,使用 Plink 删除远程服务器上的文件。

工具介绍

  • Plink:Plink 是 PuTTY 软件包中的命令行 SSH 客户端,支持通过 SSH 远程执行命令。
  • PSCP:PSCP 是 PuTTY 软件包中的命令行工具,用于通过 SCP 协议从远程服务器传输文件到本地。
@echo off

:: 定义远程服务器和路径
set SRC_SERVER=user@1.2.3.4
set SRC_PATH=/home/user

:: 定义密码
set SRC_PASSWORD="password"

:: 定义本地目标目录
set DEST_DIR=C:\Workspace\

:: 创建目标目录(如果不存在)
mkdir "%DEST_DIR%" 2>nul

:: 使用 plink 检查是否有以 daily- 开头的文件,并获取文件路径
plink -ssh -pw "%SRC_PASSWORD%" -batch %SRC_SERVER% "find %SRC_PATH% -type f -name 'daily-*' | head -n 1" > file_check.txt

:: 读取文件路径
set /p FILE_PATH=<file_check.txt
del file_check.txt

:: 如果文件路径为空,则表示没有找到文件
if "%FILE_PATH%"=="" (
    echo  daily- not exist
    exit /b
)

:: 从远程服务器下载该文件到本地目标目录,并删除远端文件
pscp -pw "%SRC_PASSWORD%" %SRC_SERVER%:%FILE_PATH% %DEST_DIR%\
plink -ssh -pw "%SRC_PASSWORD%" -batch %SRC_SERVER% "rm -rf %FILE_PATH%

在 Windows 7 上使用批处理脚本同步两个远程服务器间的文件 将本地 Windows 文件夹同步到远程服务器