You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量归档SFTP目录文件并一次性移动至另一SFTP目录?

可行方案汇总

情况1:源目录与目标目录在同一SFTP服务器(且拥有服务器shell访问权限)

这是最高效的处理方式,直接在服务器端完成归档+移动,完全无需逐个操作文件:

  1. 登录到SFTP服务器的shell终端
  2. 执行归档命令,将源目录下所有文件打包成带日期标记的压缩包:
    tar -czf daily_archive_$(date +%Y%m%d).tar.gz /path/to/source_folder/*
    
  3. 将归档包移动到目标SFTP目录:
    mv daily_archive_$(date +%Y%m%d).tar.gz /path/to/target_folder/
    
  4. (可选)清空源目录下的原文件:
    rm /path/to/source_folder/*
    

情况2:源目录与目标目录在同一SFTP服务器(无shell权限,仅能通过SFTP协议操作)

使用支持批量命令的SFTP客户端工具(如lftp),通过脚本一次性执行操作:
创建lftp脚本文件(例如sftp_batch_task.lft):

open sftp://username:password@your-sftp-server
cd /path/to/source_folder
# 调用服务器端tar命令(需确认服务器允许exec操作)
exec tar -czf /tmp/daily_archive.tar.gz *
mv /tmp/daily_archive.tar.gz /path/to/target_folder/
exec rm /path/to/source_folder/*
exit

执行脚本:

lftp -f sftp_batch_task.lft

情况3:源目录与目标目录在不同SFTP服务器

借助rsync(兼容SSH/SFTP协议)完成批量同步、归档与迁移:

  1. 批量同步源服务器文件到本地临时目录:
    rsync -avz sftp://source-user@source-server:/path/to/source_folder/ /local/temp/archive_dir/
    
  2. 本地生成归档包:
    tar -czf daily_archive_$(date +%Y%m%d).tar.gz /local/temp/archive_dir/*
    
  3. 将归档包上传到目标服务器:
    rsync -avz daily_archive_$(date +%Y%m%d).tar.gz sftp://target-user@target-server:/path/to/target_folder/
    
  4. (可选)批量清空源服务器的原文件:
    rsync -avz --delete --include='*' --exclude='.' --exclude='..' /dev/null sftp://source-user@source-server:/path/to/source_folder/
    

内容的提问来源于stack exchange,提问作者james11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 08:10:28