如何免重复登录并行从Compute Canada HPC多目录下载文件?
解决HPC集群免登录并行下载问题
一、实现免重复登录(SSH密钥认证+连接复用)
1. 生成SSH密钥对
在Windows命令提示符或Git Bash中执行:
ssh-keygen -t ed25519
一路按回车(无需设置密码,否则仍需输入),会在C:\Users\<你的用户名>\.ssh\目录下生成id_ed25519(私钥)和id_ed25519.pub(公钥)。
2. 上传公钥到HPC集群
执行以下命令将公钥传到集群:
scp C:\Users\<你的用户名>\.ssh\id_ed25519.pub s1234567@gc-prd-hpclogin1.rcs.griffith.edu.au:~/.ssh/
登录集群后,将公钥追加到授权文件并修改权限(仅需执行一次):
ssh s1234567@gc-prd-hpclogin1.rcs.griffith.edu.au cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys exit
此后使用scp/rsync连接集群无需再输入密码。
3. 开启SSH连接复用(优化连接效率)
在C:\Users\<你的用户名>\.ssh\目录下新建无后缀的config文件,写入以下内容:
Host gc-prd-hpclogin1.rcs.griffith.edu.au User s1234567 ControlMaster auto ControlPath ~/.ssh/sockets/%r@%h-%p ControlPersist 1h
该配置会让后续SSH连接复用已建立的会话,彻底消除重复登录的开销。
二、并行批量下载方案
方案1:rsync + GNU Parallel(推荐)
rsync比scp更适合批量文件传输,支持递归目录,配合GNU Parallel可实现多任务并行下载。
- 准备下载列表:新建
download_list.txt文件,每行格式为远程路径 本地路径,示例:
/scratch/dir1/ D:\local\dir1\ /scratch/dir2/ D:\local\dir2\ /scratch/data/*.txt D:\local\text_files\
- 使用GNU Parallel:Windows下Git Bash默认自带该工具,直接在Git Bash中运行:
parallel -j 4 rsync -avz --progress s1234567@gc-prd-hpclogin1.rcs.griffith.edu.au:{1} {2} :::: download_list.txt
-j 4:同时运行4个并行任务,可根据网络带宽和集群负载调整(建议不超过8);-avz:归档模式(保留权限、递归传输)、显示详细信息、压缩传输;--progress:实时显示下载进度。
方案2:pscp(PuTTY工具集)批量并行
若习惯使用PuTTY工具,pscp支持批量传输,结合密钥实现免登录:
- 准备远程路径列表:新建
remote_paths.txt,每行一个远程文件/目录:
/scratch/dir1/ /scratch/file1.txt /scratch/dir2/subdir/
- 编写并行下载脚本:创建
parallel_download.bat脚本,内容如下(每个任务用start开启独立窗口):
@echo off start pscp -i C:\Users\<你的用户名>\.ssh\id_ed25519 -r -batch s1234567@gc-prd-hpclogin1.rcs.griffith.edu.au:/scratch/dir1/ D:\local\dir1\ start pscp -i C:\Users\<你的用户名>\.ssh\id_ed25519 -r -batch s1234567@gc-prd-hpclogin1.rcs.griffith.edu.au:/scratch/dir2/ D:\local\dir2\ start pscp -i C:\Users\<你的用户名>\.ssh\id_ed25519 -batch s1234567@gc-prd-hpclogin1.rcs.griffith.edu.au:/scratch/file1.txt D:\local\
双击运行脚本即可同时启动多个下载任务。
方案3:WSL(Windows子系统Linux)
若Windows版本支持WSL,直接在WSL中配置SSH密钥和连接复用,使用Linux原生的rsync+Parallel工具,操作逻辑与Linux环境完全一致,体验更顺畅。
内容的提问来源于stack exchange,提问作者JakeB
相关产品推荐
相关产品推荐

