温馨提示×

如何备份linux sftp文件

小樊
46
2026-09-05 03:20:52
栏目: 智能运维

在 Linux 上“备份 SFTP 文件”通常有两种理解:

  1. 把远程 SFTP 服务器上的文件备份到本地 / 其他存储
  2. 备份本地文件,并通过 SFTP 提供给别人下载

下面分别说明常见做法。


一、从远程 SFTP 服务器备份文件到本地

方法 1:使用 sftp 命令(交互式)

sftp user@remote_host
get -r /remote/path /local/backup/path
  • -r:递归下载目录
  • 适合临时、少量文件

方法 2:使用 lftp(推荐,支持断点续传)

lftp sftp://user@remote_host -e "mirror /remote/path /local/backup/path; bye"
  • mirror:只同步变更文件
  • 非常适合定期备份

方法 3:使用 rsync + SSH(最常用)

如果远程支持 SSH:

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

优点:

  • 增量备份
  • 速度快
  • 可配合 cron 定时执行

方法 4:使用 scp

scp -r user@remote_host:/remote/path /local/backup/path
  • 简单但不支持增量

二、本地文件通过 SFTP 备份(作为 SFTP 服务端)

如果你是提供 SFTP 备份服务:

1. 配置 SFTP 用户

useradd -m backupuser
passwd backupuser

2. 限制为 SFTP -only(可选)

编辑 /etc/ssh/sshd_config:

Match User backupuser
    ChrootDirectory /backup
    ForceCommand internal-sftp

然后:

systemctl restart sshd

三、定时自动备份(示例)

每天凌晨备份

crontab -e
0 2 * * * rsync -az -e ssh user@remote:/data /backup/data >> /var/log/sftp_backup.log

四、备份建议

  • 保留历史版本(如 /backup/2026-01-21)
  • 对重要备份加密
  • 定期校验文件完整性

如果你能说明:

  • 是 客户端还是服务端
  • 是否要 定时 / 增量 / 加密
  • 使用的 Linux 发行版

我可以给你更精确的方案。

0 踩