在 Ubuntu 上“迁移 FTP Server 数据”通常分为几种情况,我先按最常见场景给你一个清晰思路和具体操作步骤,你可以对照自己的环境选择。
Ubuntu 常见 FTP 服务有:
查看方式:
dpkg -l | grep -E "vsftpd|proftpd|pure-ftpd"
例如从 /home/ftp 迁移到 /data/ftp
sudo systemctl stop vsftpd
sudo rsync -avzP /home/ftp/ /data/ftp/
sudo nano /etc/vsftpd.conf
修改:
local_root=/data/ftp
或匿名用户:
anon_root=/data/ftp
sudo systemctl start vsftpd
在新服务器执行:
rsync -avzP --delete user@旧服务器IP:/data/ftp/ /data/ftp/
旧服务器:
tar czf ftpdata.tar.gz /data/ftp
scp ftpdata.tar.gz user@新服务器:/data/
新服务器:
tar xzf ftpdata.tar.gz -C /
sudo tar czf ftpusers.tar.gz /etc/passwd /etc/shadow /etc/group
sudo tar czf ftpdir.tar.gz /data/ftp
sudo tar xzf ftpusers.tar.gz -C /
sudo tar xzf ftpdir.tar.gz -C /
⚠️ 注意:直接覆盖 /etc/passwd 有风险,建议只提取 FTP 用户行手动合并。
sudo chown -R ftpuser:ftpuser /data/ftp
sudo chmod -R 755 /data/ftp
如果新目录不在默认路径:
sudo nano /etc/apparmor.d/usr.sbin.vsftpd
添加:
/data/ftp/** rwk,
然后:
sudo systemctl restart apparmor
ftp localhost
或用 FileZilla 连接测试上传/下载。
你可以补充:
我可以直接给你一套可执行命令脚本。