设为首页 收藏本站
查看: 590|回复: 0

[经验分享] rsync工具介绍、常用选项、通过ssh同步

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-12-6 09:36:31 | 显示全部楼层 |阅读模式
rsync 工具介绍

    rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。

    安装rsync:yum install -y rsync
rsync 六种不同的模式命令格式工作模式
rsync[OPTION]... SRC   DEST同步本地文件。当SRC和DES路径信息都不包含有单个冒号“:”分隔符时就启动这工作模式。
rsync[OPTION]... SRC   [USER@]HOST:DEST将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号“:”分隔符时启动该模式。
rsync[OPTION]... [USER@]HOST:SRC   DEST将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号“:”分隔符时启动该模式。
rsync[OPTION]... [USER@]HOST::SRC DEST]使用一个远程shell程序(如ssh、rsh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含两个冒号“:”分隔符时启动该模式。
rsync[OPTION]... SRC  [USER@]HOST::DEST使用一个远程shell程序(如ssh、rsh)来实现将本地机器的内容拷贝到远程机器。当DEST地址路径包含两个冒号“:”分隔符时启动该模式。
rsync[OPTION]... rsync://[USER@]HOST[:PORT]/SRC[DEST]列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。注意: src表示源文件,dest表示目的文件
rsync 常用选项rsync 常用选项

    -a 包含rtplgoD
        -r:同步目录时加上表示对子目录进行递归处理
        -t:保持文件的时间属性
        -p(小写):保持文件的权限属性
        -l:保留软链接
        -g:保存文件数组
        -o:保持文件的属组
        -D:保存设备文件信息
    -v:可视化(visual)
    -L:同步软链接的同时同步其源文件
    -P(大写):显示同步过程,比v更详细
    -u:update,加上该选项,如果DEST中文件比SRC中的新,则不同步
    -z:gzip,传输时压缩
    --delete:删除DEST中SRC没有的文件
    --exclude:过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步

rsync 常用选项的应用

    同步本地机器上的文件

[iyunv@localhost ~]# rsync -av /root/abc/ /tmp/abc_dest/
sending incremental file list
created directory /tmp/abc_dest
./
1.txt
1.tx~
test123.txt -> /root/test/test
a/
sent 200 bytes  received 60 bytes  520.00 bytes/sec
total size is 15  speedup is 0.06
[iyunv@localhost ~]# ls -l /tmp/abc_dest/
总用量 0
-rw-r--r--. 1 root root  0 12月  5 15:00 1.tx~
-rw-r--r--. 1 root root  0 12月  5 15:00 1.txt
drwxr-xr-x. 2 root root  6 12月  5 14:59 a
lrwxrwxrwx. 1 root root 15 12月  5 15:04 test123.txt -> /root/test/test
[iyunv@localhost ~]# rsync -avL /root/abc/ /tmp/abc_dest
sending incremental file list
test123.txt
sent 1287 bytes  received 32 bytes  2638.00 bytes/sec
total size is 1151  speedup is 0.87
[iyunv@localhost ~]# ls -l /tmp/abc_dest/
总用量 4
-rw-r--r--. 1 root root    0 12月  5 15:00 1.tx~
-rw-r--r--. 1 root root    0 12月  5 15:00 1.txt
drwxr-xr-x. 2 root root    6 12月  5 14:59 a
-rw-r--r--. 1 root root 1151 11月 25 11:04 test123.txt

    没加-L参数时候,同步数据时会把软链接同步过来,加了-L参数后,同步数据时把软链接文件对应的源文件同步过来。

    --delete 删除DEST中SRC没有的文件

[iyunv@localhost ~]# ls abc/
1.tx~  1.txt  a  test123.txt
[iyunv@localhost ~]# ls /tmp/abc_dest/
1.tx~  1.txt  a  new.txt  test123.txt
[iyunv@localhost ~]# rsync -avL --delete /root/abc/ /tmp/abc_dest/
sending incremental file list
./
deleting new.txt
sent 96 bytes  received 16 bytes  224.00 bytes/sec
total size is 1151  speedup is 10.28
[iyunv@localhost ~]# ls /tmp/abc_dest/
1.tx~  1.txt  a  test123.txt

    --delete可以比较源文件和目标文件,当目标文件比源文件多某个文件时,使用--delete参数可以将目标文件中多出来的文件删除。如果不加--delete参数,只会同步源文件中的文件,目标文件中多余的文件不会动。

    --exclude 过滤指定文件

[iyunv@localhost ~]# rsync -av --exclude "*.txt" /root/abc/ /tmp/abc_dest/
sending incremental file list
./
1.tx~
a/
sent 107 bytes  received 38 bytes  290.00 bytes/sec
total size is 0  speedup is 0.00
[iyunv@localhost ~]# ls /tmp/abc_dest/
1.tx~  a
[iyunv@localhost ~]# ls abc/
1.tx~  1.txt  2.txt  a  test123.txt

    --exclude "*.txt" 同步时,不同步以.txt结尾的文件。如果需要过滤多个条件,则需要用多个--exclude。

    -P(大写)显示同步过程,比v更详细。

[iyunv@localhost ~]# rsync -avP /root/abc/ /tmp/abc_dest/
sending incremental file list
./
1.txt
       0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=4/6)
1.tx~
       0 100%    0.00kB/s    0:00:00 (xfer#2, to-check=3/6)
2.txt
       7 100%    0.00kB/s    0:00:00 (xfer#3, to-check=2/6)
test123.txt -> /root/test/test
a/

sent 268 bytes  received 79 bytes  694.00 bytes/sec
total size is 22  speedup is 0.06

    使用大写p参数,可以显示同步传输的速度、和进度。传输大文件时很实用。

    -u:update

[iyunv@localhost ~]# cat /root/abc/123
test 20171201
[iyunv@localhost ~]# cat /tmp/abc_dest/123
test 20171205
test 20171205
[iyunv@localhost ~]# rsync -avu /root/abc/ /tmp/abc_dest/
sending incremental file list
./
sent 146 bytes  received 16 bytes  324.00 bytes/sec
total size is 36  speedup is 0.22
[iyunv@localhost ~]# cat /tmp/abc_dest/123
test 20171205
test 20171205
[iyunv@localhost ~]# cat /root/abc/123
test 20171201

    加上该选项,如果DEST中文件比SRC中的新,则不同步。

通过ssh同步

    通过ssh同步的两台机器需要相互之间可以通信,并且两台都要安装rsync工具。

    通过ssh的方式,将一台机器的文件同步到另一台机器。

[iyunv@localhost ~]# rsync -av /etc/passwd 192.168.159.130:/tmp/2017.txt
root@192.168.159.130's password:
sending incremental file list
passwd
sent 1202 bytes  received 31 bytes  352.29 bytes/sec
total size is 1128  speedup is 0.91

    将本地 /etc/passwd 文件同步到远程主机192.168.159.130.

注意: 同步到远程主机上时,如果没选择用户,则当前是那个用户在操作,就那个用户登录远程主机(远程主机上需要有相同的用户)。

[iyunv@localhost ~]# rsync -av 192.168.159.130:/tmp/2017.txt /tmp/201712.txt
root@192.168.159.130's password:
receiving incremental file list
2017.txt
sent 30 bytes  received 1209 bytes  354.00 bytes/sec
total size is 1128  speedup is 0.91
[iyunv@localhost ~]# ls /tmp
201712.txt

    从远程机器192.168.159.130 将文件同步到本地机器。

    把文件从本地机器同步到远程机器叫推文件,从远程机器同步到本地机器叫拉文件。

    当远程机器的端口不是22端口时,需要使用-e参数

[iyunv@localhost ~]# rsync -av -e "ssh -p 2200" /etc/passwd 192.168.159.130:/tmp/2017.txt

    -e "ssh -p 2200" 使用2200端口

    ssh -p 22 192.168.159.130

        ssh 通过22端口远程登录到192.168.159.130 这台机器。





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-421071-1-1.html 上篇帖子: linux的rsync工具的常用选项及ssh同步介绍 下篇帖子: 关于邮箱的POP协议、imap协议、imap协议简单讲解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表