rsync

Linux下的同步文件非常多,可以根据不同的场景选择合适的工具。rsync,是用来跟远程机器,进行同步文件的工具,可以增量同步,即,已经下载的文件,不会重复的传递。(增量的含义是,已有的不会重复同步)

顺便讲一下,其他方式,如scp、python -m SimpleHTTPServer 8080、lrzsz、ftp、samba等等,每种适合的场景略有不同。

核心用法:

rsync -av -e 'ssh -p 22022' thumb/  root@10.182.1.3:/home/wwwroot/default/thumb

注意,thumb/结尾带不带斜杆,差别较大。简单理解:带斜杆,当成文件夹,把文件夹下面的所有文件拷贝到目标目录中。(不会多层级)。不带斜杆,即当作文件,经其直接拷贝到目标目录中。(会多层级)

示例

将本地的cloud文件夹拷贝到远程的/root目录下。(目录不存在,会自动创建) mkdir没有加 -p ???

h93在本地/etc/hosts配置好了ip。

rsync -r cloud   root@h93:/root/cloud

主要参数:

-r 递归

v 类似tar中的v的含义,显示详细。

–process 显示进度。

a 文件的时间信息保留一致?

示例2

将thumb/下的文件拷贝到thumb。

mycp.sh

rsync -av -e 'ssh -p 22022' thumb/  root@10.182.1.3:/home/wwwroot/default/thumb

-v 显示详细的内容

-a 跟 -r的作用一样,能递归的同步文件。但是呢,能保持原有的权限、时间信息。

-e 指定使用ssh来作为传递数据的通道,并可以在此制定端口。

将/mnt/data/down拷贝到 down目录下,即down/down,为啥有这样的区别呢?难道是第一各地址,末尾有无/,造成的吗?

rsync -av -e 'ssh -p 22022'  root@10.182.1.3:/mnt/data/down down