温馨提示×

如何备份CentOS的FTPServer

小樊
42
2026-07-20 14:20:21
栏目: 智能运维

在 CentOS 上备份 FTP Server,你需要根据使用的 FTP 服务软件是否保留了用户数据、配置文件来决定备份哪些内容。下面以最常见的 vsftpd 为例,给出完整备份方法;如果你用的是 ProFTPD / Pure-FTPd,我也可以单独说明。


一、确认 FTP 服务类型

ps -ef | grep ftp
rpm -qa | grep vsftpd

常见 FTP 服务:

  • ✅ vsftpd(最常见)
  • ProFTPD
  • Pure-FTPd

二、备份 vsftpd(最常见)

1️⃣ 备份 vsftpd 配置文件

cp -a /etc/vsftpd /etc/vsftpd.bak.$(date +%F)

或直接打包:

tar czvf vsftpd-config-$(date +%F).tar.gz /etc/vsftpd

主要文件包括:

  • /etc/vsftpd/vsftpd.conf
  • /etc/vsftpd/ftpusers
  • /etc/vsftpd/user_list

2️⃣ 备份 FTP 用户数据(重点)

✅ 本地用户 FTP

如果 FTP 使用的是系统用户:

# 用户账号
cp /etc/passwd /etc/passwd.bak
cp /etc/shadow /etc/shadow.bak
cp /etc/group  /etc/group.bak

✅ 虚拟用户(常见)

如果你使用虚拟用户(如 PAM + db):

# 虚拟用户数据库
tar czvf vsftpd-virtual-users-$(date +%F).tar.gz \
/etc/vsftpd/virtual_users.db \
/etc/pam.d/vsftpd

3️⃣ 备份 FTP 数据目录(最重要)

查看 FTP 根目录:

grep -E "local_root|anon_root" /etc/vsftpd/vsftpd.conf

常见目录:

  • /home/*
  • /var/ftp
  • /data/ftp

备份示例:

tar czvf ftpdata-$(date +%F).tar.gz /var/ftp

或增量备份(推荐):

rsync -avz /var/ftp/ /backup/ftpdata/

4️⃣ 备份防火墙 & SELinux 设置(可选)

iptables-save > iptables.rules.bak
cp /etc/selinux/config /etc/selinux/config.bak

三、完整备份脚本(推荐)

#!/bin/bash
DATE=$(date +%F)
BACKUP_DIR=/backup/ftp

mkdir -p $BACKUP_DIR

tar czvf $BACKUP_DIR/vsftpd-conf-$DATE.tar.gz /etc/vsftpd
tar czvf $BACKUP_DIR/ftpdata-$DATE.tar.gz /var/ftp
cp /etc/passwd $BACKUP_DIR/passwd-$DATE
cp /etc/shadow $BACKUP_DIR/shadow-$DATE
chmod +x backup_ftp.sh
./backup_ftp.sh

四、恢复 FTP Server(示例)

tar xzvf vsftpd-conf-2026-01-21.tar.gz -C /
tar xzvf ftpdata-2026-01-21.tar.gz -C /
systemctl restart vsftpd

五、如果是 ProFTPD / Pure-FTPd

软件 配置文件
ProFTPD /etc/proftpd/
Pure-FTPd /etc/pure-ftpd/

备份方式类似:

tar czvf proftpd-conf.tar.gz /etc/proftpd

六、建议的备份策略

✅ 每天增量备份 FTP 数据
✅ 每周全量备份配置
✅ 备份到异地或 NAS
✅ 定期测试恢复


如果你愿意,可以告诉我:

  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ FTP 软件(vsftpd / ProFTPD / Pure-FTPd)
  • ✅ 是否使用虚拟用户

我可以给你完全定制化的备份方案

0