CentOS中VSFTP的备份策略
导读:CentOS 中 VSFTP 备份策略 一 备份范围与保留策略 备份对象应覆盖:配置文件、用户数据目录、日志文件,必要时包含用户与虚拟用户信息。 配置文件:/etc/vsftpd/(如:vsftpd.conf、user_list、ftp...
CentOS 中 VSFTP 备份策略
一 备份范围与保留策略
- 备份对象应覆盖:配置文件、用户数据目录、日志文件,必要时包含用户与虚拟用户信息。
- 配置文件:/etc/vsftpd/(如:vsftpd.conf、user_list、ftpusers 等)
- 数据目录:由配置决定,常见为 /var/ftp/ 或本地用户的 /home//(若使用本地用户)
- 日志文件:/var/log/vsftpd.log 或 /var/log/vsftpd/ 目录
- 建议的保留策略(可按需调整):
- 日备保留:7 天
- 周备保留:4 周
- 月备保留:12 个月
- 备份粒度:
- 配置与系统信息:建议每次变更即备份并打上时间戳
- 数据:建议每日增量/全量结合,关键目录可按小时做快照(如业务允许停机或能低峰窗口)
二 备份方法选型
- 本地归档备份(简单可靠)
- 使用 tar.gz 将配置与数据打包,便于存储与传输;适合中小规模与快速恢复场景
- 镜像同步备份(一致性更好)
- 使用 rsync 做目录镜像,支持增量、删除同步,适合大规模与频繁变更的数据目录
- 远程异地备份(提升可用性)
- 结合 lftp / ftp 将归档或镜像推送到远程 FTP/对象存储,实现本地+异地双备份
- 一致性建议
- 若无法停服,优先选择支持增量的方案(如 rsync);对强一致有要求且可短暂停服时,可在备份窗口短暂停止 vsftpd 后再备份
三 自动化脚本与定时任务
- 示例一 本地 tar 归档 + 保留策略
- 备份脚本(/usr/local/bin/vsftpd_backup.sh):
#!/bin/bash set -Eeuo pipefail BACKUP_ROOT="/backup/vsftpd" DATE=$(date +%F_%H%M%S) CONF_DIR="/etc/vsftpd" DATA_DIR="/var/ftp" # 按实际修改 LOG_DIR="/var/log/vsftpd" KEEP_DAYS=7 mkdir -p "$BACKUP_ROOT" # 打包配置与数据 tar czf "$BACKUP_ROOT/vsftpd_${ DATE} .tar.gz" -C / "$CONF_DIR" "$DATA_DIR" "$LOG_DIR" 2> /dev/null # 清理过期 find "$BACKUP_ROOT" -name "vsftpd_*.tar.gz" -mtime +$KEEP_DAYS -delete echo "$(date) Backup finished: $BACKUP_ROOT/vsftpd_${ DATE} .tar.gz" - 定时任务(每天 02:00 执行):
0 2 * * * /usr/local/bin/vsftpd_backup.sh > > /var/log/vsftpd_backup.log 2> & 1
- 备份脚本(/usr/local/bin/vsftpd_backup.sh):
- 示例二 镜像同步到远程 FTP(lftp)
- 备份脚本(/usr/local/bin/vsftpd_mirror.sh):
#!/bin/bash set -Eeuo pipefail FTP_HOST="backup.example.com" FTP_USER="ftpbackup" FTP_PASS="YourStrongPass" REMOTE_DIR="/vsftpd" LOCAL_DIR="/var/ftp" lftp -u "$FTP_USER","$FTP_PASS" "$FTP_HOST" < < EOF set ftp:ssl-allow no mirror --reverse --delete --verbose "$LOCAL_DIR" "$REMOTE_DIR" bye EOF echo "$(date) Mirror to $FTP_HOST finished." - 定时任务(每天 03:00 执行):
0 3 * * * /usr/local/bin/vsftpd_mirror.sh > > /var/log/vsftpd_mirror.log 2> & 1
- 备份脚本(/usr/local/bin/vsftpd_mirror.sh):
- 权限与日志
- 给脚本执行权限:
chmod +x /usr/local/bin/*.sh - 建议将脚本与日志归属同一非特权用户,避免明文密码泄露(生产可用 key、凭据文件或 secret 管理工具)
- 给脚本执行权限:
四 恢复流程与验证
- 配置恢复
- 停止服务:
systemctl stop vsftpd - 解压覆盖:
tar xzf /backup/vsftpd_YYYY-MM-DD_HHMMSS.tar.gz -C / - 启动服务:
systemctl start vsftpd
- 停止服务:
- 数据恢复
- 归档恢复:
tar xzf /backup/vsftpd_YYYY-MM-DD_HHMMSS.tar.gz -C / - 镜像恢复:使用 lftp 的
mirror将远程目录拉回本地(方向为本地←远程)
- 归档恢复:
- 验证要点
- 核对关键文件是否存在且权限正确(如:vsftpd.conf、user_list)
- 抽查若干数据文件与目录结构是否完整
- 检查服务可登录、可上传/下载
- 定期做恢复演练并记录结果,确保备份可用
五 安全与运维要点
- 禁用匿名访问:在 /etc/vsftpd/vsftpd.conf 中设置
anonymous_enable=NO - 启用被动模式并限制端口范围:如
pasv_enable=YES、pasv_min_port=21100、pasv_max_port=21110,并在防火墙放行对应端口 - 防火墙与 SELinux
- 放行 FTP 与被动端口:
firewall-cmd --add-service=ftp --permanent与firewall-cmd --add-port=21100-21110/tcp --permanent,随后firewall-cmd --reload - 如启用 SELinux,必要时设置布尔值(如
setsebool -P ftp_home_dir on、allow_ftpd_full_access on),以匹配你的目录与权限模型
- 放行 FTP 与被动端口:
- 凭据与传输安全
- 远程备份优先使用 SFTP/SSH 或 FTPS;若用 FTP,尽量在受信内网或专线中传输
- 避免在脚本中硬编码密码,使用受限备份账号与最小权限策略
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS中VSFTP的备份策略
本文地址: https://pptw.com/jishu/772003.html
