将远程服务器文件同步到本地 Windows
2024-09-03 tech windows linux 2 mins 1005 字
这个脚本通过 Plink
连接远程服务器,查找以 daily-
开头文件并将其下载到本地,使用 PSCP
执行文件传输,整个过程完全自动化。脚本的主要功能步骤如下:
- 定义服务器和文件路径:指定远程服务器地址、路径和本地存储目录。
- 查找文件:使用
Plink
在远程服务器上查找符合条件的文件(例如,文件名以daily-
开头)。 - 文件下载:如果找到目标文件,则使用
PSCP
将其下载到本地。 - 删除原文件:下载完成后,使用
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%