温馨提示×

如何备份Debian vsftp数据

小樊
39
2026-07-16 02:22:06
栏目: 智能运维

在 Debian 上备份 vsftpd 的数据,通常包括 用户数据(FTP 目录)配置文件 以及 用户认证信息。下面按常见部署方式给你一个完整、可操作的备份方案。


一、备份前先明确 vsftpd 架构

vsftpd 本身不存“数据库”,常见组合是:

项目 常见位置
配置文件 /etc/vsftpd.conf
FTP 根目录 /home/*/srv/ftp
虚拟用户 /etc/passwd 或 PAM + 虚拟用户文件
日志 /var/log/vsftpd.log
系统用户 /etc/passwd/etc/shadow

二、备份 vsftpd 配置文件(必做)

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 用户数据(最重要)

1️⃣ 如果是 系统用户

用户家目录通常就是 FTP 目录:

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

如果 FTP 目录是自定义路径:

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

2️⃣ 如果是 虚拟用户(PAM)

常见配置:

  • 用户文件:/etc/vsftpd/virtual_users
  • PAM 配置:/etc/pam.d/vsftpd
tar 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

八、常见注意事项 ⚠️

  1. 不要只备份数据目录
    • 否则用户无法登录
  2. 恢复后检查权限
    chown -R ftpuser:ftpuser /home/ftpuser
    
  3. SELinux / AppArmor
    • Debian 通常为 AppArmor,恢复后注意上下文
  4. 定期备份
    • 可加入 cron

如果你愿意,可以告诉我:

  • ✅ 用的是 系统用户还是虚拟用户
  • ✅ FTP 目录在哪
  • ✅ 是否使用 MySQL / PAM

我可以给你 完全定制化的备份与恢复方案

0