温馨提示×

linux sftp如何批量传

小樊
44
2026-09-08 01:17:15
栏目: 智能运维

在 Linux 下使用 SFTP 批量传输文件,常见做法有下面几种,按“是否交互”来区分:


一、SFTP 命令里批量传(交互模式)

1️⃣ 使用通配符(最常用)

sftp user@host
sftp> put *.log
sftp> mput *.txt
  • put:单个/通配符
  • mput:批量(会逐个确认,可加 - 关闭提示)
sftp> mput - *.jpg

2️⃣ 批量传整个目录(SFTP 本身不支持递归)

SFTP 不能直接递归传目录,需要配合 scprsync

✅ 推荐:

scp -r /local/dir user@host:/remote/dir

或:

rsync -avz /local/dir/ user@host:/remote/dir/

二、非交互批量传(脚本方式,推荐)

3️⃣ sftp + batch 文件(最标准)

sftp -b batch.txt user@host

batch.txt 内容:

put file1.txt
put file2.log
put *.csv
bye

4️⃣ 使用 sftp + sshpass(无交互密码)

sshpass -p 'password' sftp -b batch.txt user@host

⚠️ 不推荐生产环境使用明文密码


5️⃣ 使用 lftp(强大,支持批量+递归)

lftp sftp://user@host <<EOF
mput *.log
mirror -R local_dir remote_dir
bye
EOF

lftp 支持:

  • 批量
  • 递归目录
  • 断点续传

三、总结建议

场景 推荐方式
临时手动 sftp + mput
脚本自动化 sftp -b
传目录 scp -r / rsync
高级批量 lftp

如果你愿意,可以告诉我:

  • 本地 → 服务器 还是 服务器 → 本地
  • 是否要 定时任务 / 脚本
  • 是否 禁止 scp

我可以给你写一份可直接用的脚本。

0