温馨提示×

linux sftp如何做备份

小樊
45
2026-10-02 00:57:33
栏目: 智能运维

在 Linux 下使用 SFTP 做备份,常见做法有几种,从最简单的手动方式到自动化脚本/工具。下面按实用程度给你整理。


一、最基础:手工 SFTP 上传备份

1. 连接 SFTP

sftp user@backup-server

2. 上传文件

put /var/backups/db.sql.gz /backup/

3. 下载备份(恢复用)

get /backup/db.sql.gz /tmp/

✅ 适合:偶尔备份、小文件


二、用脚本 + SFTP 自动备份(推荐)

示例:自动上传备份文件

#!/bin/bash

BACKUP_FILE=/var/backups/$(date +%F).tar.gz
REMOTE_DIR=/backup/

# 生成本地备份
tar -czf $BACKUP_FILE /etc /home

# SFTP 上传
sftp user@backup-server <<EOF
put $BACKUP_FILE $REMOTE_DIR
bye
EOF

赋予执行权限:

chmod +x backup.sh

三、用 lftp(比 sftp 更适合脚本)

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

✅ 优点:

  • 支持断点续传
  • 支持目录同步
  • 脚本友好

四、用 rsync + ssh(强烈推荐备份方案)

虽然不是纯 SFTP,但最常用:

rsync -avz -e ssh /data/ user@backup-server:/backup/

✅ 优点:

  • 增量备份
  • 速度快
  • 非常适合定期备份

五、定时自动备份(crontab)

crontab -e

每天凌晨 2 点备份:

0 2 * * * /root/backup.sh

六、安全建议(很重要)

  • ✅ 使用 SSH Key 而不是密码
  • ✅ 限制 SFTP 用户只能访问备份目录(chroot)
  • ✅ 保留多个历史版本(按日期命名)
  • ✅ 定期测试恢复

七、如果你愿意,我可以帮你

你可以告诉我:

  1. 备份的内容(数据库 / 文件 / 整个系统)
  2. 是本地 → 远程还是远程 → 本地
  3. 是否要自动化 + 定时

我可以直接帮你写一套可用的备份脚本。

0 踩