温馨提示×

怎么备份Ubuntu FTPServer

小樊
46
2026-08-02 12:52:02
栏目: 智能运维

备份 Ubuntu 上的 FTPServer(通常指 vsftpd),主要包括 配置文件、用户数据、以及可选的证书/日志。下面按最常用、最安全的方式一步一步说明。


一、确认你用的是哪种 FTP 服务

大多数 Ubuntu 使用 vsftpd,先确认:

systemctl status vsftpd

或:

dpkg -l | grep ftp

如果看到 vsftpd,下面内容直接适用
如果是 proftpd / pure-ftpd,可以再告诉我,我再给你对应方案。


二、备份 FTP 配置文件(必须)

1️⃣ 备份 vsftpd 主配置

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

或整体打包:

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

2️⃣ 备份 PAM 认证配置(重要)

如果你用系统用户登录 FTP:

sudo cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

三、备份 FTP 数据目录(最核心)

1️⃣ 确认 FTP 根目录

查看配置:

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

常见目录:

  • /home/*
  • /srv/ftp
  • /var/ftp
  • 自定义目录(如 /data/ftp

2️⃣ 备份数据(推荐 rsync)

sudo rsync -av /data/ftp/ /backup/ftp_data_$(date +%F)/

或打包:

sudo tar czvf ftp-data-$(date +%F).tar.gz /data/ftp

四、如果你启用了 FTPS(SSL/TLS)

1️⃣ 备份证书和私钥

查看证书路径:

grep -E "rsa_cert_file|rsa_private_key_file" /etc/vsftpd.conf

示例:

rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key

备份:

sudo cp /etc/ssl/certs/vsftpd.pem /backup/
sudo cp /etc/ssl/private/vsftpd.key /backup/

⚠️ 私钥一定要保密,别放到不安全的地方


五、备份用户 & 权限(可选但推荐)

1️⃣ 系统用户

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

2️⃣ FTP 专用用户(如虚拟用户)

如果你用的是虚拟用户(如 pam_userdb),还要备份:

# 数据库
ls /etc/vsftpd/virtual_users.*

# 或
/etc/vsftpd_login.db

六、备份日志(可选)

/var/log/vsftpd.log

或:

sudo cp /var/log/vsftpd.log /backup/

七、一键备份脚本(推荐)

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

sudo mkdir -p $BACKUP_DIR

sudo cp /etc/vsftpd.conf $BACKUP_DIR/
sudo cp -r /etc/pam.d/vsftpd $BACKUP_DIR/
sudo rsync -av /data/ftp/ $BACKUP_DIR/ftpdata/
sudo cp /etc/ssl/certs/vsftpd.pem $BACKUP_DIR/ 2>/dev/null
sudo cp /etc/ssl/private/vsftpd.key $BACKUP_DIR/ 2>/dev/null

echo "FTP 备份完成:$BACKUP_DIR"

运行:

chmod +x backup_ftp.sh
sudo ./backup_ftp.sh

八、恢复示例(简单说明)

sudo cp vsftpd.conf.bak /etc/vsftpd.conf
sudo systemctl restart vsftpd

九、进阶建议 ✅

  • ✅ 定期备份(+ cron)
  • ✅ 数据异地备份(rsync / scp)
  • ✅ 如果是生产环境,不要只备份 FTP,还要备份整个服务器

如果你愿意,可以告诉我: 1️⃣ Ubuntu 版本
2️⃣ 是否使用 FTPS / 虚拟用户
3️⃣ FTP 数据目录路径

我可以帮你 定制一套完整备份+恢复方案

0