温馨提示×

如何迁ubuntu ftpserver数据

小樊
49
2026-10-20 02:08:09
栏目: 智能运维

在 Ubuntu 上“迁移 FTP Server 数据”通常分为几种情况,我先按最常见场景给你一个清晰思路和具体操作步骤,你可以对照自己的环境选择。


一、先确认你用的是哪种 FTP Server

Ubuntu 常见 FTP 服务有:

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

查看方式:

dpkg -l | grep -E "vsftpd|proftpd|pure-ftpd"

二、典型迁移场景

场景 1:同机更换 FTP 目录(数据搬家)

例如从 /home/ftp 迁移到 /data/ftp

1. 停止 FTP 服务

sudo systemctl stop vsftpd

2. 拷贝数据(保留权限)

sudo rsync -avzP /home/ftp/ /data/ftp/

3. 修改配置文件

sudo nano /etc/vsftpd.conf

修改:

local_root=/data/ftp

或匿名用户:

anon_root=/data/ftp

4. 重启服务

sudo systemctl start vsftpd

场景 2:迁移到另一台 Ubuntu 服务器(跨机迁移)

方法 A:rsync(推荐)

在新服务器执行:

rsync -avzP --delete user@旧服务器IP:/data/ftp/ /data/ftp/

方法 B:tar + scp

旧服务器:

tar czf ftpdata.tar.gz /data/ftp
scp ftpdata.tar.gz user@新服务器:/data/

新服务器:

tar xzf ftpdata.tar.gz -C /

场景 3:迁移并保留 FTP 用户

1. 打包用户数据

sudo tar czf ftpusers.tar.gz /etc/passwd /etc/shadow /etc/group
sudo tar czf ftpdir.tar.gz /data/ftp

2. 新服务器恢复

sudo tar xzf ftpusers.tar.gz -C /
sudo tar xzf ftpdir.tar.gz -C /

⚠️ 注意:直接覆盖 /etc/passwd 有风险,建议只提取 FTP 用户行手动合并。


三、权限和 SELinux / AppArmor 注意

权限修复

sudo chown -R ftpuser:ftpuser /data/ftp
sudo chmod -R 755 /data/ftp

AppArmor(Ubuntu 常见)

如果新目录不在默认路径:

sudo nano /etc/apparmor.d/usr.sbin.vsftpd

添加:

/data/ftp/** rwk,

然后:

sudo systemctl restart apparmor

四、验证迁移是否成功

ftp localhost

或用 FileZilla 连接测试上传/下载。


五、如果你愿意,我可以更精确帮你

你可以补充:

  1. 使用的是 vsftpd / proftpd / pure-ftpd
  2. 是同机迁移还是换服务器
  3. 是否使用虚拟用户 / 系统用户
  4. 数据量大小(GB 级?TB 级?)

我可以直接给你一套可执行命令脚本。

0 踩