备份 Linux 上的 FTP 服务器,通常需要从 用户数据、配置文件、用户账号、权限 等方面进行备份。下面以常见 FTP 服务(vsftpd、ProFTPD、Pure-FTPd)为例说明。
ps -ef | grep ftp
# 或
systemctl status vsftpd
常见服务:
FTP 主要是文件服务,用户上传的文件必须备份。
通常在:
/var/ftp
/home/ftpuser
/srv/ftp
或在配置文件中查看:
grep -R "local_root\|anon_root" /etc/vsftpd/
tar -czvf ftp_data_$(date +%F).tar.gz /var/ftp
建议放到其他磁盘或远程:
scp ftp_data.tar.gz user@backup-server:/backup/
tar -czvf ftp_conf.tar.gz /etc/vsftpd/
tar -czvf ftp_conf.tar.gz /etc/proftpd/
tar -czvf ftp_conf.tar.gz /etc/pure-ftpd/
cp /etc/passwd /etc/shadow /etc/group /backup/
如果是虚拟用户(PAM):
# 用户密码文件
tar -czvf vsftpd_vuser.tar.gz /etc/vsftpd/vuser*
# 数据库文件
ls /etc/vsftpd/*.db
iptables-save > ftp_iptables.bak
# 或
firewall-cmd --list-all > ftp_firewall.bak
SELinux:
getsebool -a | grep ftp > ftp_selinux.bak
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 软件 + 使用方式(匿名 / 本地 / 虚拟用户),我可以给你一套精准备份脚本。