温馨提示×

CentOS上VSFTP的备份与恢复策略

小樊
40
2025-10-04 20:53:35
栏目: 智能运维

CentOS上VSFTP备份与恢复策略

一、备份策略

1. 备份前准备

  • 停止服务(可选但推荐):为确保数据一致性,备份前建议停止vsftpd服务:
    sudo systemctl stop vsftpd
    恢复完成后需重新启动服务:sudo systemctl start vsftpd

2. 核心备份内容及方法

  • 配置文件备份
    vsftpd的主配置文件为/etc/vsftpd/vsftpd.conf,相关依赖文件包括/etc/pam.d/vsftpd(PAM认证配置)、/etc/vsftpd/user_list(用户列表)、/etc/vsftpd/ftpusers(禁止FTP访问用户列表)。

    • 单文件备份(快速):sudo cp /etc/vsftpd/vsftpd.conf /backup/vsftpd.conf.bak
    • 多文件/目录备份(推荐):使用tar打包整个配置目录,保留文件结构:
      sudo tar -czvf /backup/vsftpd_config_$(date +%Y%m%d).tar.gz /etc/vsftpd/ /etc/pam.d/vsftpd
  • 用户数据备份
    FTP用户数据默认存储在/var/lib/vsftpd/(用户虚拟目录)或/home/ftpuser/(本地用户家目录,需确认local_root配置)。

    • 推荐使用rsync(保留权限和时间戳):
      sudo rsync -av /var/lib/vsftpd/ /backup/vsftpd_data/
    • 或使用tar打包:
      sudo tar -czvf /backup/vsftpd_data_$(date +%Y%m%d).tar.gz /var/lib/vsftpd/
  • 日志文件备份(可选但重要):
    日志文件记录FTP访问、传输记录,路径为/var/log/vsftpd.log(默认)或/var/log/xferlog(传输日志)。

    • 备份命令:sudo tar -czvf /backup/vsftpd_logs_$(date +%Y%m%d).tar.gz /var/log/vsftpd/

3. 自动化备份

  • 编写备份脚本:创建/usr/local/bin/backup_vsftpd.sh,内容如下:

    #!/bin/bash
    BACKUP_DIR="/backup/vsftpd_$(date +%Y%m%d)"
    mkdir -p "$BACKUP_DIR"
    tar -czvf "$BACKUP_DIR/config.tar.gz" /etc/vsftpd/ /etc/pam.d/vsftpd
    rsync -av /var/lib/vsftpd/ "$BACKUP_DIR/data/"
    tar -czvf "$BACKUP_DIR/logs.tar.gz" /var/log/vsftpd/
    find "$BACKUP_DIR" -type f -mtime +7 -delete  # 删除7天前的备份
    echo "$(date): Backup completed to $BACKUP_DIR" >> /var/log/vsftpd_backup.log
    

    赋予执行权限:sudo chmod +x /usr/local/bin/backup_vsftpd.sh

  • 设置定时任务:通过crontab -e添加每日凌晨2点执行:
    0 2 * * * /usr/local/bin/backup_vsftpd.sh

4. 备份存储安全

  • 异地/外部存储:将备份文件复制到远程服务器(如scp)或外部硬盘(如mount后复制),避免本地磁盘故障导致数据丢失。
    示例(复制到远程服务器):
    scp /backup/vsftpd_*.tar.gz user@remote_server:/remote/backup/

二、恢复策略

1. 恢复前准备

  • 停止vsftpd服务:避免恢复过程中数据冲突:
    sudo systemctl stop vsftpd

2. 具体恢复步骤

  • 配置文件恢复

    • 解压配置备份包:sudo tar -xzvf /backup/vsftpd_config_20250910.tar.gz -C /
    • 或单独复制文件:sudo cp /backup/vsftpd.conf.bak /etc/vsftpd/vsftpd.conf
    • 检查配置文件语法(避免启动失败):
      sudo vsftpd /etc/vsftpd/vsftpd.conf(无报错则表示配置正确)。
  • 用户数据恢复

    • 解压数据备份包:sudo tar -xzvf /backup/vsftpd_data_20250910.tar.gz -C /
    • 或使用rsync同步:sudo rsync -av /backup/vsftpd_data/ /var/lib/vsftpd/
    • 注意:若用户家目录路径变更,需同步修改/etc/vsftpd/vsftpd.conf中的local_root配置。
  • 日志文件恢复(可选):

    • 解压日志备份包:sudo tar -xzvf /backup/vsftpd_logs_20250910.tar.gz -C /
    • 日志恢复后需重启rsyslog服务(若日志未自动生成):
      sudo systemctl restart rsyslog

3. 恢复后验证

  • 启动vsftpd服务sudo systemctl start vsftpd
  • 检查服务状态sudo systemctl status vsftpd(确保为“active (running)”)。
  • 测试FTP连接:使用FTP客户端(如FileZilla)连接服务器,验证用户权限、数据访问是否正常。

4. 恢复测试

  • 定期测试备份文件:每月选取一次备份集,执行恢复流程,确保备份文件未损坏且能正常恢复服务。

0