备份 Ubuntu 上的 FTPServer(通常指 vsftpd),主要包括 配置文件、用户数据、以及可选的证书/日志。下面按最常用、最安全的方式一步一步说明。
大多数 Ubuntu 使用 vsftpd,先确认:
systemctl status vsftpd
或:
dpkg -l | grep ftp
如果看到
vsftpd,下面内容直接适用
如果是proftpd/pure-ftpd,可以再告诉我,我再给你对应方案。
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
或整体打包:
sudo tar czvf vsftpd-config-$(date +%F).tar.gz /etc/vsftpd.conf
如果你用系统用户登录 FTP:
sudo cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
查看配置:
grep -E "local_root|anon_root|user_sub_token" /etc/vsftpd.conf
常见目录:
/home/*/srv/ftp/var/ftp/data/ftp)sudo rsync -av /data/ftp/ /backup/ftp_data_$(date +%F)/
或打包:
sudo tar czvf ftp-data-$(date +%F).tar.gz /data/ftp
查看证书路径:
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/
⚠️ 私钥一定要保密,别放到不安全的地方
sudo tar czvf ftp-users-$(date +%F).tar.gz /etc/passwd /etc/shadow /etc/group
如果你用的是虚拟用户(如 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
如果你愿意,可以告诉我:
1️⃣ Ubuntu 版本
2️⃣ 是否使用 FTPS / 虚拟用户
3️⃣ FTP 数据目录路径
我可以帮你 定制一套完整备份+恢复方案 ✅