在 CentOS 上备份 SFTP 数据,通常就是备份 SFTP 用户目录、权限、配置文件和关键系统信息。下面给你一套实用、可落地的备份方案,适用于大多数生产环境。
常见路径:
/home/sftpuser
/var/sftp
/data/sftp
确认方式:
grep sftp /etc/passwd
rsync(最推荐)rsync -avz /data/sftp/ /backup/sftp_$(date +%F)/
rsync -avz /data/sftp/ user@backup-server:/backup/sftp/
✅ 优点:
tar 打包备份tar -czvf /backup/sftp_$(date +%F).tar.gz /data/sftp
恢复:
tar -xzvf sftp_2026-01-21.tar.gz -C /
⚠️ 注意:
cp /etc/ssh/sshd_config /backup/sshd_config_$(date +%F)
getent passwd sftpuser > /backup/sftpuser.passwd
getent group sftpuser > /backup/sftpuser.group
ls -lR /data/sftp > /backup/sftp_permission.txt
常见 chroot 配置:
Match User sftpuser
ChrootDirectory /data/sftp
ForceCommand internal-sftp
✅ 备份:
grep -A5 "sftp" /etc/ssh/sshd_config > /backup/sftp_chroot.txt
vi /usr/local/bin/backup_sftp.sh
#!/bin/bash
SRC="/data/sftp"
DST="/backup/sftp_$(date +%F)"
rsync -avz $SRC $DST
chmod +x /usr/local/bin/backup_sftp.sh
crontab -e
每天凌晨 2 点:
0 2 * * * /usr/local/bin/backup_sftp.sh
✅ 本地 + 异地
✅ 保留周期
find /backup -type d -mtime +30 -exec rm -rf {} \;
✅ 权限一致性 恢复时检查:
chown -R sftpuser:sftpuser /data/sftp
| 场景 | 建议 |
|---|---|
| Docker SFTP | 备份 volume |
| SELinux 开启 | 备份后 restorecon -Rv |
| 大量小文件 | rsync + 排除日志 |
| 云服务器 | 配合对象存储(S3 / OSS) |
你可以直接告诉我:
1️⃣ CentOS 版本(7 / 8 / Stream)
2️⃣ SFTP 目录路径
3️⃣ 是否使用 chroot
4️⃣ 是否需要自动清理、异地备份
我可以帮你 直接给出可执行的一整套备份方案。