温馨提示×

centos ftpserver怎么备份

小樊
43
2026-10-17 16:27:38
栏目: 智能运维

在 CentOS 上备份 FTP 服务器,通常可以从数据备份、配置备份、用户备份、以及自动化几个方面来做。下面以最常见的 vsftpd 为例说明(如果是 ProFTPD / Pure-FTPd 思路类似)。


一、备份 FTP 数据文件

FTP 用户上传的文件一般存放在某个目录,比如:

  • /var/ftp
  • /home/ftpuser
  • 自定义目录(在配置文件中指定)

1. 打包数据目录

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

2. 拷贝到备份服务器或云存储

scp ftpdata_*.tar.gz backup@backupserver:/backup/ftp/

或使用 rsync:

rsync -avz /var/ftp/ backup@backupserver:/backup/ftp/

二、备份 FTP 配置文件

以 vsftpd 为例:

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

如果是 systemd 服务:

cp /usr/lib/systemd/system/vsftpd.service /backup/

三、备份 FTP 用户和权限

1. 系统用户(本地用户模式)

getent passwd | grep ftp > ftpusers.txt
getent shadow | grep ftp >> ftpusers.txt

或全量备份用户相关文件:

tar -czvf ftpusers_$(date +%F).tar.gz /etc/passwd /etc/shadow /etc/group

2. 虚拟用户(vsftpd + PAM)

常见文件:

  • /etc/vsftpd/virtual_users.txt
  • /etc/pam.d/vsftpd
  • 虚拟用户家目录
tar -czvf ftp_virtual_$(date +%F).tar.gz \
/etc/vsftpd/virtual_users.txt \
/etc/pam.d/vsftpd \
/home/vuser

四、使用脚本自动备份(推荐)

示例脚本 /root/ftp_backup.sh:

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

mkdir -p $BACKUP_DIR

# 数据
tar -czf $BACKUP_DIR/ftpdata_$DATE.tar.gz /var/ftp

# 配置
tar -czf $BACKUP_DIR/ftpconf_$DATE.tar.gz /etc/vsftpd

# 用户
tar -czf $BACKUP_DIR/ftpusers_$DATE.tar.gz /etc/passwd /etc/shadow /etc/group

# 删除7天前备份
find $BACKUP_DIR -mtime +7 -name "*.tar.gz" -delete

赋予执行权限并加入定时任务:

chmod +x /root/ftp_backup.sh
crontab -e

每天凌晨 2 点执行:

0 2 * * * /root/ftp_backup.sh

五、恢复方式(简要)

tar -xzvf ftpdata_2026-01-21.tar.gz -C /
systemctl restart vsftpd

六、额外建议

  • 使用 LVM 快照 或 数据库级备份(如果 FTP 关联业务)
  • 备份到 异地 / 对象存储(S3、OSS)
  • 定期做 恢复演练

如果你能告诉我:

  • 用的是 vsftpd / proftpd / pure-ftpd
  • 是 系统用户还是虚拟用户
  • 数据量大概多少

我可以给你更精确的备份方案。

0 踩