温馨提示×

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 天 多份副本,至少一份异地/离线保存;定期演练恢复流程。
  • 合规审计:记录备份与恢复操作日志,定期核查备份完整性与可用性。

0