在 Debian 上备份 vsftpd 的数据,通常包括 用户数据(FTP 目录)、配置文件 以及 用户认证信息。下面按常见部署方式给你一个完整、可操作的备份方案。
vsftpd 本身不存“数据库”,常见组合是:
| 项目 | 常见位置 |
|---|---|
| 配置文件 | /etc/vsftpd.conf |
| FTP 根目录 | /home/* 或 /srv/ftp |
| 虚拟用户 | /etc/passwd 或 PAM + 虚拟用户文件 |
| 日志 | /var/log/vsftpd.log |
| 系统用户 | /etc/passwd、/etc/shadow |
cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
# 或整体打包
tar czvf vsftpd-etc-$(date +%F).tar.gz /etc/vsftpd.conf /etc/vsftpd/
✅ 建议备份
/etc/vsftpd.conf/etc/vsftpd/(如果有)用户家目录通常就是 FTP 目录:
tar czvf ftp-home-$(date +%F).tar.gz /home
如果 FTP 目录是自定义路径:
tar czvf ftp-data-$(date +%F).tar.gz /srv/ftp
常见配置:
/etc/vsftpd/virtual_users/etc/pam.d/vsftpdtar czvf vsftpd-virtual-$(date +%F).tar.gz \
/etc/vsftpd/virtual_users \
/etc/pam.d/vsftpd
⚠️ 虚拟用户的密码是加密的,但不能只备份家目录,否则用户无法恢复。
如果 FTP 使用系统用户:
cp /etc/passwd /etc/passwd.bak
cp /etc/shadow /etc/shadow.bak
cp /etc/group /etc/group.bak
或打包:
tar czvf user-accounts-$(date +%F).tar.gz \
/etc/passwd /etc/shadow /etc/group
⚠️ shadow 文件权限敏感,注意安全
cp /var/log/vsftpd.log /var/log/vsftpd.log.bak
#!/bin/bash
DATE=$(date +%F)
BACKUP_DIR=/backup/vsftpd
mkdir -p $BACKUP_DIR
tar czvf $BACKUP_DIR/vsftpd-full-$DATE.tar.gz \
/etc/vsftpd.conf \
/etc/vsftpd \
/etc/pam.d/vsftpd \
/home \
/srv/ftp \
/etc/passwd \
/etc/shadow \
/etc/group \
/var/log/vsftpd.log
echo "vsftpd backup completed: $BACKUP_DIR"
赋予执行权限:
chmod +x backup_vsftpd.sh
./backup_vsftpd.sh
tar xzvf vsftpd-full-2026-01-21.tar.gz -C /
systemctl restart vsftpd
chown -R ftpuser:ftpuser /home/ftpuser
cron如果你愿意,可以告诉我:
我可以给你 完全定制化的备份与恢复方案。