在 CentOS 上备份 FTP Server,你需要根据使用的 FTP 服务软件和是否保留了用户数据、配置文件来决定备份哪些内容。下面以最常见的 vsftpd 为例,给出完整备份方法;如果你用的是 ProFTPD / Pure-FTPd,我也可以单独说明。
ps -ef | grep ftp
rpm -qa | grep vsftpd
常见 FTP 服务:
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如果 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
查看 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/
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
tar xzvf vsftpd-conf-2026-01-21.tar.gz -C /
tar xzvf ftpdata-2026-01-21.tar.gz -C /
systemctl restart vsftpd
| 软件 | 配置文件 |
|---|---|
| ProFTPD | /etc/proftpd/ |
| Pure-FTPd | /etc/pure-ftpd/ |
备份方式类似:
tar czvf proftpd-conf.tar.gz /etc/proftpd
✅ 每天增量备份 FTP 数据
✅ 每周全量备份配置
✅ 备份到异地或 NAS
✅ 定期测试恢复
如果你愿意,可以告诉我:
我可以给你完全定制化的备份方案。