温馨提示×

CentOS怎样备份SFTP数据

小樊
37
2026-08-18 22:22:57
栏目: 智能运维

在 CentOS 上备份 SFTP 数据,通常就是备份 SFTP 用户目录、权限、配置文件。下面按常见场景给你一套完整、可操作的方案。


一、确认 SFTP 数据目录

1️⃣ 查看 SFTP 用户数据目录

常见路径:

/home/sftpuser
/var/sftp
/data/sftp

查看用户家目录:

grep sftp /etc/passwd

二、备份 SFTP 数据(最常见方式)

✅ 方法一:使用 rsync(推荐)

1️⃣ 本地备份

rsync -avz /data/sftp/ /backup/sftp_$(date +%F)/

2️⃣ 远程备份

rsync -avz /data/sftp/ user@backup-server:/backup/sftp/

✅ 优点:

  • 增量备份
  • 保留权限、时间
  • 稳定可靠

✅ 方法二:使用 tar 打包备份

tar -czvf /backup/sftp_$(date +%F).tar.gz /data/sftp

恢复:

tar -xzvf /backup/sftp_2026-01-21.tar.gz -C /

⚠️ 注意:

  • tar 默认不保留 SELinux context(如需保留加 --selinux

三、备份 SFTP 配置(非常重要)

1️⃣ 备份 SSH / SFTP 配置

cp -p /etc/ssh/sshd_config /backup/sshd_config_$(date +%F)

2️⃣ 备份用户和权限

getent passwd > /backup/passwd.bak
getent group > /backup/group.bak

3️⃣ 备份 SELinux(如启用)

cp -p /etc/selinux/config /backup/

四、保留文件权限和属主(关键)

✅ 使用 rsync -a(推荐)

rsync -a /data/sftp/ /backup/sftp/

✅ 或 tar 保留权限

tar -czvpf /backup/sftp.tar.gz /data/sftp

五、自动化备份(生产环境推荐)

1️⃣ 创建备份脚本

vi /usr/local/bin/backup_sftp.sh

内容示例:

#!/bin/bash
SRC="/data/sftp"
DST="/backup/sftp_$(date +%F)"
rsync -a $SRC $DST

2️⃣ 定时执行

chmod +x /usr/local/bin/backup_sftp.sh
crontab -e

每天凌晨 2 点:

0 2 * * * /usr/local/bin/backup_sftp.sh

六、如果使用的是 Chroot SFTP

⚠️ Chroot 环境必须注意:

  • 根目录权限必须是:
chown root:root /data/sftp
chmod 755 /data/sftp
  • 上传目录:
chown sftpuser:sftpuser /data/sftp/upload

✅ 恢复时一定要保持这些权限,否则 SFTP 无法登录。


七、恢复 SFTP 数据

rsync -a /backup/sftp/ /data/sftp/

或:

tar -xzvpf /backup/sftp.tar.gz -C /

重启 SSH:

systemctl restart sshd

八、推荐方案总结

场景 推荐方式
日常备份 rsync
离线归档 tar
多服务器 rsync + SSH
自动化 cron + rsync
权限安全 保留 root/chown

如果你愿意,我可以:

  • ✅ 根据你 SFTP 配置(chroot / 非 chroot) 给出精确方案
  • ✅ 帮你写 完整备份 + 恢复脚本
  • ✅ 设计 增量 + 异地备份方案

直接把你的 sshd_config 和 SFTP 目录结构贴出来即可。

0