备份 Debian 上的 FTP 服务器主要包含 配置文件、用户数据、权限与日志 三部分。下面以 vsftpd(最常见) 为例,系统说明如何完整备份。
先确认你使用的是哪种 FTP 服务:
dpkg -l | grep ftp
常见:
下面以 vsftpd 为主说明。
vsftpd 的主配置文件路径:
/etc/vsftpd.conf
cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
或打包备份:
tar czvf vsftpd-config-$(date +%F).tar.gz /etc/vsftpd.conf
如果是 proftpd:
tar czvf proftpd-config-$(date +%F).tar.gz /etc/proftpd/
FTP 主要用于文件传输,核心数据是 用户上传/下载的文件。
查看配置文件中 FTP 目录:
grep -E "local_root|anon_root|chroot" /etc/vsftpd.conf
常见目录:
/srv/ftp/home/ftp/var/ftp/home/usernamersync -av /srv/ftp/ /backup/ftp-data-$(date +%F)/
或远程备份:
rsync -avz /srv/ftp/ user@backup-server:/backup/ftp/
✅ rsync 支持增量备份,速度快
FTP 用户通常是系统用户或虚拟用户。
cp /etc/passwd /backup/passwd.bak
cp /etc/shadow /backup/shadow.bak
cp /etc/group /backup/group.bak
⚠️ 注意:shadow 文件权限敏感,需 root 操作。
如果使用虚拟用户:
tar czvf ftp-virtual-users.tar.gz /etc/pam.d/vsftpd /etc/vsftpd/
iptables-save > /backup/iptables.rules
或 nftables:
nft list ruleset > /backup/nftables.conf
ufw status numbered > /backup/ufw-status.txt
tar czvf ftp-logs.tar.gz /var/log/vsftpd.log
或:
/var/log/syslog
#!/bin/bash
BACKUP_DIR=/backup/ftp
DATE=$(date +%F)
mkdir -p $BACKUP_DIR
tar czvf $BACKUP_DIR/ftp-config-$DATE.tar.gz /etc/vsftpd.conf
rsync -av /srv/ftp/ $BACKUP_DIR/ftp-data-$DATE/
crontab -e
每天凌晨 2 点备份:
0 2 * * * /root/ftp-backup.sh
tar xzvf ftp-config-*.tar.gz -C /
rsync -av /backup/ftp-data/ /srv/ftp/
systemctl restart vsftpd
✅ 配置文件
✅ FTP 数据文件
✅ 用户与权限
✅ 防火墙规则
✅ 日志(可选)
如果你愿意,可以告诉我:
我可以给你一份 完全针对你环境的备份方案。