温馨提示×

linux ftpserver怎么迁数据

小樊
41
2026-09-17 09:54:49
栏目: 智能运维

在 Linux 上迁移 FTP 服务器数据,通常分为文件数据迁移FTP 服务配置/账号迁移两部分。下面按常见场景给你一套实用方案。


一、先确认你用的 FTP 服务类型

常见 FTP 服务端:

  • vsftpd(最常见)
  • ProFTPD
  • Pure-FTPd

不同服务配置位置略有不同,但数据迁移思路一致。


二、FTP 文件数据迁移(核心)

方式 1:同机房 / 同网络(推荐 rsync)

新服务器执行:

rsync -avz --delete \
  -e ssh \
  root@旧服务器IP:/ftp根目录/ \
  /ftp根目录/

示例(vsftpd 默认目录):

rsync -avz -e ssh root@192.168.1.10:/var/ftp/ /var/ftp/

✅ 优点:

  • 保留权限、时间戳
  • 支持断点续传
  • 增量同步

方式 2:跨公网 / 大文件

rsync -avz --bwlimit=5000 -e ssh user@old:/data/ftp/ /data/ftp/

--bwlimit 限制带宽,避免影响业务。


方式 3:打包迁移(不推荐大目录)

旧服务器:

tar czf ftpdata.tar.gz /var/ftp
scp ftpdata.tar.gz newserver:/tmp

新服务器:

tar xzf /tmp/ftpdata.tar.gz -C /

⚠ 注意权限和 SELinux 问题


三、FTP 用户和配置迁移

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

如果是系统用户(/etc/passwd):

旧服务器:

getent passwd | grep ftp > ftpusers.txt

新服务器:

useradd -m ftpuser
passwd ftpuser

或直接复制:

rsync -avz /etc/passwd /etc/shadow /etc/group newserver:/etc/

⚠ 风险较大,建议只同步 FTP 专用用户


2. vsftpd 虚拟用户(常见)

迁移这些文件:

/etc/vsftpd/
/etc/vsftpd/vsftpd.conf
/etc/vsftpd/virtual_users.txt
/etc/vsftpd/virtual_users.db

新服务器:

yum install vsftpd
systemctl enable vsftpd
systemctl start vsftpd

3. ProFTPD / Pure-FTPd

  • ProFTPD:/etc/proftpd/
  • Pure-FTPd:/etc/pure-ftpd/

四、权限和 SELinux 注意

权限修复

chown -R ftpuser:ftpuser /var/ftp
chmod -R 755 /var/ftp

SELinux(CentOS/RHEL)

restorecon -Rv /var/ftp
setsebool -P ftpd_full_access on

五、切换上线(建议流程)

  1. 旧服务器 rsync 一次(全量)
  2. 停止旧 FTP 服务
    systemctl stop vsftpd
    
  3. 再 rsync 一次(增量)
  4. 新服务器启动 FTP
  5. DNS / IP 切换

六、验证

ftp newserver
ls

或用:

lftp ftp://user:pass@newserver

如果你告诉我:

  • 用的什么 FTP 服务
  • 是不是虚拟用户
  • 是同机房还是公网

我可以给你精确命令,直接能抄。

0