vsftp在centos上的备份与恢复策略
小樊
39
2025-12-27 04:15:26
vsftpd 在 CentOS 的备份与恢复策略
一 备份范围与准备
- 明确备份对象:配置文件、用户数据目录、相关账户信息、日志。常见路径为:配置文件 /etc/vsftpd/(主配置 vsftpd.conf,以及 ftpusers、user_list 等)、数据目录 /var/ftp 或用户主目录(如 /home/ftpuser)、账户信息 /etc/passwd、/etc/shadow、日志 /var/log/vsftpd/。建议先确认实际数据目录:grep -E ‘^(local_root|anon_root)’ /etc/vsftpd/vsftpd.conf。准备离线或远端存储(如 /backup 或远程主机),并确保备份介质可写、网络与权限正确。
二 备份策略与实施
-
全量打包备份(适合周备/月备或迁移)
- 配置文件与列表:
- tar -czvf vsftpd_conf_$(date +%F).tar.gz /etc/vsftpd /etc/vsftpd/ftpusers /etc/vsftpd/user_list
- 用户数据目录(按实际目录选择其一或多项):
- tar -czvf vsftpd_data_$(date +%F).tar.gz /var/ftp
- tar -czvf vsftpd_user_$(date +%F).tar.gz /home/ftpuser
- 账户与认证信息(谨慎保护):
- tar -czvf vsftpd_accounts_$(date +%F).tar.gz /etc/passwd /etc/shadow
- 日志归档:
- tar -czvf vsftpd_logs_$(date +%F).tar.gz /var/log/vsftpd
- 说明:将归档文件传输到安全位置(如 scp/rsync 到备份服务器或对象存储)。
-
增量/持续同步备份(适合日备)
- 本地镜像:
- rsync -a --delete /var/ftp/ /backup/vsftpd/
- 远端镜像(免密登录建议用 SSH 密钥):
- rsync -avz --delete /var/ftp/ backupuser@backup.example.com:/backup/vsftpd/
- 说明:增量方式节省时间与空间,适合高频备份;必要时可配合日志轮转与压缩归档。
-
自动化与校验
- 示例脚本 backup_vsftpd.sh(全量打包 + 远端拷贝 + 校验):
- #!/bin/bash
- set -e
- DATE=$(date +%F)
- BACKUP_DIR=/backup/vsftpd
- mkdir -p “$BACKUP_DIR”
- LOG=“$BACKUP_DIR/backup_$DATE.log”
- tar czf “$BACKUP_DIR/vsftpd_$DATE.tar.gz” /etc/vsftpd /var/ftp /var/log/vsftpd /etc/passwd /etc/shadow 2>>“$LOG”
- rsync -avz “$BACKUP_DIR/vsftpd_$DATE.tar.gz” backupuser@backup.example.com:/backup/vsftpd/ >>“$LOG” 2>&1
- ls -lh “$BACKUP_DIR/vsftpd_$DATE.tar.gz” >>“$LOG”
- echo “Backup finished at $(date)” >>“$LOG”
- 定时任务(每天 02:00 执行):
- 0 2 * * * /usr/local/bin/backup_vsftpd.sh
- 说明:加入日志、退出码判断与远端同步,便于监控与追溯。
三 恢复流程与验证
-
配置文件恢复
- 解压到根并重启服务:
- tar -xzvf vsftpd_conf_YYYY-MM-DD.tar.gz -C /
- systemctl restart vsftpd
- 说明:如有自定义列表或额外文件,确保与当前系统版本兼容后再重启。
-
数据与账户恢复
- 数据目录覆盖恢复(谨慎,先停服务或确保无写入):
- systemctl stop vsftpd
- tar -xzvf vsftpd_data_YYYY-MM-DD.tar.gz -C /
- chown -R ftpuser:ftpuser /var/ftp # 按实际用户与组调整
- systemctl start vsftpd
- 远端归档拉取恢复:
- rsync -avz backupuser@backup.example.com:/backup/vsftpd/vsftpd_YYYY-MM-DD.tar.gz /backup/
- tar -xzvf /backup/vsftpd_YYYY-MM-DD.tar.gz -C /
- 账户信息恢复(仅在必要时执行,先备份当前文件):
- tar -xzvf vsftpd_accounts_YYYY-MM-DD.tar.gz -C /
- 说明:恢复后核对目录权限、属主与 SELinux 上下文(必要时 restorecon),并做可用性验证。
-
恢复后验证清单
- 服务状态:systemctl is-active vsftpd;日志:tail -n50 /var/log/vsftpd.log
- 登录与权限:本地/虚拟用户登录、上传/下载、目录可写性
- 数据一致性:抽样校验关键文件数量与大小,必要时做哈希比对
四 安全与合规要点
- 传输加密:优先使用 SFTP/RSYNC over SSH 或将备份归档再加密后传输,避免明文口令与敏感文件泄露。
- 最小权限:备份用户仅授予必要权限;账户备份(/etc/shadow)严格限制访问与传输链路。
- 保留与异地:按策略保留 7/30/90 天 多份副本,至少一份异地/离线保存;定期演练恢复流程。
- 合规审计:记录备份与恢复操作日志,定期核查备份完整性与可用性。