温馨提示×

怎样备份linux sftp文件

小樊
38
2026-10-07 22:18:19
栏目: 智能运维

在 Linux 上“备份 SFTP 文件”通常有两种理解,下面分别说明,并给出常用、可落地的做法。


一、把【远程 SFTP 服务器上的文件】备份到本地

方法 1:使用 lftp(推荐,稳定)

lftp sftp://user:password@remote_host -e "mirror -e /remote/path /local/backup/path; bye"

说明:

  • mirror:同步目录
  • -e:删除本地多余文件(保持完全一致)
  • 不加 -e 更安全(只增不删)

方法 2:使用 rsync + ssh

如果远程支持 SSH:

rsync -avz -e ssh user@remote_host:/remote/path /local/backup/path

优点:增量备份,速度快

方法 3:使用 sftp 命令脚本

sftp user@remote_host <<EOF
cd /remote/path
lcd /local/backup/path
mget *
bye
EOF

二、把【本地文件】备份到 SFTP 服务器

方法 1:lftp 上传

lftp sftp://user:password@remote_host -e "mirror -R /local/path /remote/backup; bye"
  • -R:反向同步(本地 → 远程)

方法 2:rsync

rsync -avz /local/path user@remote_host:/remote/backup

三、自动化备份(定时任务)

使用 cron 每天备份

crontab -e

添加:

0 2 * * * lftp sftp://user:pass@host -e "mirror -e /remote/path /backup/path; bye"

→ 每天凌晨 2 点备份


四、安全建议(非常重要)

  • ❌ 不要在命令中明文写密码
  • ✅ 使用 SSH 密钥登录
ssh-keygen
ssh-copy-id user@remote_host

之后可省略密码


五、增量 / 版本备份(进阶)

  • 用 rsnapshot
  • 用 restic(支持 SFTP 后端,加密备份)
restic -r sftp:user@host:/backup init
restic -r sftp:user@host:/backup backup /local/path

如果你能说明:

  • 是从哪到哪(本地 ↔ 远程)
  • 是否要定时
  • 是否允许 SSH

我可以给你直接可用的完整脚本。

0 踩