CentOS SFTP备份与恢复策略有哪些
CentOSSFTP备份与恢复策略
一策略总览与分层
数据层:对SFTP根目录(如**/home/sftpuser或自定义的ChrootDirectory**)进行每日增量与每周全量备份,保留至少7–30天,关键业务建议异地/云端留存一份副本。
配置层:对**/etc/ssh/sshd_config及/etc/ssh/sshd_config.d/**进行版本化备份,任何配置变更前后都应留痕。
账号与授权:备份用户的authorized_keys、用户与组信息,确保恢复后权限与登录方式一致。
验证与演练:定期做恢复演练与完整性校验,确保备份可用;对数据库等应用数据,先按应用一致性要求备份,再纳入SFTP传输流程。
工具选择:文件级同步用rsync(增量、保留属性),整包/镜像用tar(便于离线归档与传输)。
二备份策略与实施步骤
数据层备份(rsync增量)
目标:将SFTP数据目录(如**/home/sftpuser**)增量同步到备份目录或远端备份主机。
示例脚本:
本地或挂载盘备份
#!/bin/bash
SOURCE=“/home/sftpuser”
BACKUP_DIR=“/backup/sftp”
mkdir-p“$BACKUP_DIR”
rsync-a--delete-v“$SOURCE/”“$BACKUP_DIR/current/”
tarczf“$BACKUP_DIR/archive/sftp_$(date+%F_%H-%M-%S).tgz”-C“$BACKUP_DIR/current”.
echo“Backupcompletedon$(date)”>>/var/log/sftp_backup.log
远端备份(SSH)
rsync-a--delete-essh“$SOURCE/”user@backup-host:/backup/sftp/current/
说明:-a保留权限/属主/时间,–delete保持镜像一致,适合日常增量备份。
配置层备份(sshd_config与sshd_config.d)
本地快照:
sudocp/etc/ssh/sshd_config/etc/ssh/sshd_config.bak.$(date+%F_%H-%M-%S)
sudocp-a/etc/ssh/sshd_config.d/etc/ssh/sshd_config.d.bak.$(date+%F_%H-%M-%S)
远端归档:
sudotarczfsshd_config_$(date+%F).tgz-C/etc/sshsshd_configsshd_config.d
scpsshd_config_$(date+%F).tgzuser@backup-host:/backup/ssh/
变更后建议执行:sudosystemctlreloadsshd(或restart)使配置生效。
账号与授权备份
备份用户与组:getentpasswd>/backup/etc/passwd.bak;getentgroup>/backup/etc/group.bak
备份公钥:rsync-a/home/*/.ssh/authorized_keys/backup/ssh/authorized_keys/
调度与保留
每日增量:02***/usr/local/bin/backup_sftp.sh
每周全量归档:03**0/usr/local/bin/backup_sftp_full.sh
按“日增量保留7天、周全量保留4–12周”的策略清理旧备份(可用find或脚本实现)。
三恢复策略与操作要点
整库/目录恢复(rsync)
将备份镜像还原至原位置:
rsync-a--delete/backup/sftp/current//home/sftpuser/
若使用ChrootDirectory%h,确保上层目录(如**/home**)属主为root:root且权限755,用户目录属主为用户本身,否则internal-sftp可能无法登录。
归档恢复(tar)
进入目标父目录后解包:
cd/home&&tarxzf/backup/sftp/archive/sftp_2025-04-01_02-00-00.tgz
配置恢复
覆盖还原:
sudocp/backup/ssh/sshd_config.bak.YYYY-MM-DD/etc/ssh/sshd_config
sudocp-a/backup/ssh/sshd_config.d.bak.YYYY-MM-DD/etc/ssh/sshd_config.d
应用:sudosystemctlreloadsshd;变更前建议备份当前配置并先在测试环境验证。
账号与授权恢复
复核/etc/passwd、/etc/group与/home/*/.ssh/authorized_keys的属主与权限,必要时使用vipw、vigr或集中化的LDAP/SSSD恢复账户信息。
验证
抽样校验关键文件数量/大小/校验和;用测试账号进行SFTP登录与上传/下载验证;检查应用是否能正常读取恢复后的数据。
四高可用与监控建议
多副本与离线:在本地盘+远端主机+云端对象存储形成至少2–3份副本,定期做离线/异地归档,降低单点风险。
校验与演练:对备份做周期性恢复演练与完整性校验(如校验和/清单比对),确保关键时刻可用。
监控与告警:对备份任务退出码、传输速率/耗时、磁盘空间、sshd服务状态设置监控与告警,异常及时处置。
安全加固:备份传输与存放均使用加密通道/存储;限制备份访问权限;对敏感备份启用访问控制与审计。
五常见排错要点
服务与端口:确认sshd运行并开机自启,防火墙放行22/TCP。
systemctlstatussshd;firewall-cmd--permanent--add-port=22/tcp&&firewall-cmd--reload
SFTP子系统:/etc/ssh/sshd_config中配置Subsystemsftpinternal-sftp或外部sftp-server,变更后reload/restart。
权限模型:Chroot环境下,上层目录需root:root755,用户目录为用户本人,避免因权限不当导致登录失败。
日志排查:查看**/var/log/secure或journalctl-usshd**定位认证/权限/子系统错误。
连接测试:使用sftpuser@host进行连通性与登录验证。

