在 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 /backup/sftp_2026-01-21.tar.gz -C /
⚠️ 注意:
tar 默认不保留 SELinux context(如需保留加 --selinux)cp -p /etc/ssh/sshd_config /backup/sshd_config_$(date +%F)
getent passwd > /backup/passwd.bak
getent group > /backup/group.bak
cp -p /etc/selinux/config /backup/
rsync -a(推荐)rsync -a /data/sftp/ /backup/sftp/
tar -czvpf /backup/sftp.tar.gz /data/sftp
vi /usr/local/bin/backup_sftp.sh
内容示例:
#!/bin/bash
SRC="/data/sftp"
DST="/backup/sftp_$(date +%F)"
rsync -a $SRC $DST
chmod +x /usr/local/bin/backup_sftp.sh
crontab -e
每天凌晨 2 点:
0 2 * * * /usr/local/bin/backup_sftp.sh
⚠️ Chroot 环境必须注意:
chown root:root /data/sftp
chmod 755 /data/sftp
chown sftpuser:sftpuser /data/sftp/upload
✅ 恢复时一定要保持这些权限,否则 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 |
如果你愿意,我可以:
直接把你的 sshd_config 和 SFTP 目录结构贴出来即可。