温馨提示×

如何备份linux ftpserver

小樊
45
2026-09-29 09:12:38
栏目: 智能运维

备份 Linux 上的 FTP 服务器,通常需要从 用户数据、配置文件、用户账号、权限 等方面进行备份。下面以常见 FTP 服务(vsftpd、ProFTPD、Pure-FTPd)为例说明。


一、确定你使用的 FTP 服务

ps -ef | grep ftp
# 或
systemctl status vsftpd

常见服务:

  • vsftpd(最常见)
  • proftpd
  • pure-ftpd

二、备份 FTP 用户数据(最重要)

FTP 主要是文件服务,用户上传的文件必须备份。

1. 查找 FTP 根目录

通常在:

/var/ftp
/home/ftpuser
/srv/ftp

或在配置文件中查看:

grep -R "local_root\|anon_root" /etc/vsftpd/

2. 打包备份

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

建议放到其他磁盘或远程:

scp ftp_data.tar.gz user@backup-server:/backup/

三、备份 FTP 配置文件

vsftpd

tar -czvf ftp_conf.tar.gz /etc/vsftpd/

proftpd

tar -czvf ftp_conf.tar.gz /etc/proftpd/

pure-ftpd

tar -czvf ftp_conf.tar.gz /etc/pure-ftpd/

四、备份 FTP 用户和系统账号

1. 系统用户(本地用户模式)

cp /etc/passwd /etc/shadow /etc/group /backup/

2. vsftpd 虚拟用户

如果是虚拟用户(PAM):

# 用户密码文件
tar -czvf vsftpd_vuser.tar.gz /etc/vsftpd/vuser*

# 数据库文件
ls /etc/vsftpd/*.db

五、备份防火墙与 SELinux 设置(可选但推荐)

iptables-save > ftp_iptables.bak
# 或
firewall-cmd --list-all > ftp_firewall.bak

SELinux:

getsebool -a | grep ftp > ftp_selinux.bak

六、自动化备份(推荐)

使用 cron 定时备份

crontab -e

示例(每天 2 点):

0 2 * * * tar -czf /backup/ftp_$(date +\%F).tar.gz /var/ftp /etc/vsftpd

七、恢复示例(简要)

tar -xzvf ftp_data.tar.gz -C /
systemctl restart vsftpd

总结备份清单 ✅

  • [ ] FTP 用户数据目录
  • [ ] FTP 配置文件
  • [ ] 用户账号 / 虚拟用户
  • [ ] 防火墙 / SELinux 设置
  • [ ] 定期自动备份

如果你能告诉我 具体 FTP 软件 + 使用方式(匿名 / 本地 / 虚拟用户),我可以给你一套精准备份脚本。

0 踩