在 Linux 下迁移 FTP 服务器数据,通常分为同机迁移、跨机迁移(最常见)、以及更换 FTP 软件(如 vsftpd → proftpd)几种场景。下面按最通用的做法给你一套清晰方案。
ps aux | grep ftp
# 常见:vsftpd、proftpd、pure-ftpd
常见位置:
/home/* 或 /var/ftp/srv/ftpgrep -i "local_root\|ftp_directory\|home" /etc/vsftpd.conf
systemctl stop vsftpd
# 或
systemctl stop proftpd
/data/ftpmkdir -p /data/ftp
cp -a /var/ftp/. /data/ftp/
chown -R ftp:ftp /data/ftp
修改配置:
vi /etc/vsftpd.conf
local_root=/data/ftp
重启:
systemctl start vsftpd
源服务器:
rsync -avz --delete /var/ftp/ root@新服务器IP:/data/ftp/
目标服务器:
chown -R ftp:ftp /data/ftp
优点:
scp -r /var/ftp root@目标IP:/data/
tar czf ftp.tar.gz -C /var/ftp .
scp ftp.tar.gz root@目标IP:/data/
目标服务器:
tar xzf ftp.tar.gz -C /data/ftp
# 源
getent passwd | grep ftp > ftpusers.txt
# 目标
while read line; do useradd ...; done < ftpusers.txt
或整库迁移:
rsync /etc/passwd /etc/shadow /etc/group 目标服务器:/etc/
迁移:
/etc/vsftpd/virtual_users.txt
/etc/pam.d/vsftpd
rsync /etc/vsftpd/ 目标:/etc/vsftpd/
systemctl restart vsftpd
ftp 目标IP
ls
或:
lftp ftp://user:pass@ip
✅ 权限问题
✅ SELinux(建议临时关):
setenforce 0
✅ 防火墙:
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
如果你能告诉我:
我可以直接给你精确命令。