使用 rsync 在服务器之间进行文件传输
一、前言
最近要迁移服务器,看上了 rsync ,这里做个记录。
二、过程
1、安装
新的服务器是没有 rsync 的,需要安装一下,命令如下:
yum install rsync -y
注意!!!
传输文件的服务器和被传输的服务器都要安装!!!
2、传输
假如我要将原服务器的 /www 目录以及子目录下的所有文件迁移到新服务器下的同名目录,新服务器没有此目录会自动创建
ip地址 192.168.0.171 换成自己的新服务器ip地址
使用如下命令:
rsync -avz --progress /www/ root@192.168.0.171:/www/
等待传输完成
3、指定某个时间之后的文件进行传输(可选)
假如在某个文件夹下,我只要传递某个时间点之后的的文件即可。
rsync 本身没有直接按时间过滤的选项,但可以结合 find 命令来实现。
基本思路:
1、使用find命令查找指定目录下修改时间(或访问时间)在某个时间点之后的文件。
2、 将找到的文件列表通过管道传递给 rsync 进行同步。
假如我要将 /software/minio/data/guowanghy 文件夹下、2025年7月1日之后的文件传输到新服务器的 /usr/local/minio/minio-20250422/data /guowanghy 目录下,
可以先到 guowanghy 目录的上级目录,这里很重要!!!
然后使用如下命令查询目标文件:
find guowanghy -type f -newermt '2025-07-01 00:00:00' -print0
find guowanghy -type f -newermt '2025-07-01 00:00:00' -print0 | rsync -avh --files-from=- -0 -e ssh . root@192.168.0.171:/usr/local/minio/minio-20250422/data
等待传输完成即可