rsync工具的常用选项、ssh同步介绍

1. rsync工具介绍

rsync是数据备份工具(字面意思可以理解为远程同步),不仅可以远程同步数据,而且可以本地同步数据(类似与cp),但不同于cp或scp的一点是,它不会覆盖以前的数据(如果数据已经存在),而是先判断已经存在的数据和新数据的差异,只有数据不同时才会把不相同的部分覆盖。

安装rsync命令:#yum install -y rsync

讲解rsync的用法

举例将/etc/passwd同步到/tmp/目录下,并改名为1.txt,操作如下:

# rsync -av /etc/passwd /tmp/1.txt

sending incremental file list

passwd

sent 1460 bytes  received 31 bytes  2982.00 bytes/sec

total size is 1386  speedup is 0.93

如果是远程复制,数据备份的形式就是这样的形式——IP:path,比如172.16.111.110:/root/,具体用法如下:

# rsync -av /tmp/1.txt 172.16.111.110:/tmp/2.txt

The authenticity of host '172.16.111.110 (172.16.111.110)' can't be established.

ECDSA key fingerprint is 09:6d:70:42:42:9a:12:69:51:9b:ad:e5:73:98:b9:c0.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '172.16.111.110' (ECDSA) to the list of known hosts.

[email protected]'s password:

sending incremental file list

1.txt

sent 1459 bytes  received 31 bytes  270.91 bytes/sec

total size is 1386  speedup is 0.93

rsync的命令格式

rsync [OPTION] … SRC   DEST

rsync [OPTION] … SRC   [[email protected]]host:DEST

rsync [OPTION] … [[email protected]]host:SRC   DEST

rsync [OPTION] … SRC   [[email protected]]host::DEST

rsync [OPTION] … [[email protected]]host::SRC   DEST

解释:在前面的例子中,第一个例子为第一种格式,第二个例子为第二种格式,但不同的是并没有加用户名[email protected],如果不加默认指的是root。第三种格式是用远程目录同步数据到本地。第四种和第五种格式使用了两个冒号,这种格式和其他格式的验证方式不同。

2. rsync常用选项

rsync常用选项

-a 这是归档模式,表示以递归方式传输文件,并保持所有属性,它等同于-rlptgoD,-a选项后面可以跟一个--no-OPTION,表示关闭-rlptgoD中的某一个,比如-a--no-l等同于-rlptgoD。

-r 表示以递归模式处理子目录。它主要是针对目录来说的,如果单独传一个文件不需要加-r选项,但是传输目录时必须加。

-v 表示打印一些信息,如文件列表,文件数量等

-l 表示保留软链接

-L 表示像对待常规文件一样处理软链接,如果SRC文件中有软链接时,则加上该选项后,将会把软链接指向的目标文件一起复制到DEST。

-p 表示保持文件权限

-o 表示保持文件属主信息

-g 表示保持文件属组信息

-D 表示保持设备文件信息

-t 表示保持文件时间信息

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

--exclude=PATTERN 表示指定排除SRC中不需要传输的文件,等号后面跟文件名,可以用通配符如*.txt

--progress 在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、同步的文件传输速度等。

-u 表示把dest中比src还新的文件排除掉,不会覆盖

-z 加上该选项,将会在传输过程中压缩

但是常用的选项是-a,-v,-z,--delete和--exclude。

建立目录和文件

# mkdir rsync

# cd rsync

# touch 1 2 3 /root/123.txt

# ln -s /root/123.txt ./123.txt

# ls -l

总用量 0

-rw-r--r--. 1 root root  0 12月  5 20:57 1

lrwxrwxrwx. 1 root root 13 12月  5 20:57 123.txt -> /root/123.txt

-rw-r--r--. 1 root root  0 12月  5 20:57 2

-rw-r--r--. 1 root root  0 12月  5 20:57 3

-av 把root下的rsync目录同步到tmp下并且改名rsync_dest,示例如下:

# rsync -av /root/rsync/ /tmp/rsync_dest/

sending incremental file list

123.txt -> /root/123.txt

sent 89 bytes  received 15 bytes  208.00 bytes/sec

total size is 13  speedup is 0.12

加上-L选项后,同步软连接文件时会把源文件同步,示例如下:

# rsync -avL /root/rsync/ /tmp/rsync_dest/

sending incremental file list

123.txt

sent 103 bytes  received 31 bytes  268.00 bytes/sec

total size is 0  speedup is 0.00

-delete 同步时删除目标目录rsync_dest中源目录rsync没有的文件,示例如下:

# rsync -avL -delete /root/rsync/ /tmp/rsync_dest/

sending incremental file list

sent 64 bytes  received 12 bytes  152.00 bytes/sec

total size is 0  speedup is 0.00

--exclude 同步时过滤掉文件名或目录名为.txt,不同步(支持写多个exclude,但不支持同一个exclude有多个条件),示例如下:

# rsync -avL --exclude "*.txt" /root/rsync/ /tmp/rsync_dest/

sending incremental file list

created directory /tmp/rsync_dest

./

1

2

3

sent 172 bytes  received 72 bytes  488.00 bytes/sec

total size is 0  speedup is 0.00

过滤掉带1开头,示例如下:

# rsync -avL --exclude "*.txt" --exclude "1" /root/rsync/ /tmp/rsync_dest/

sending incremental file list

created directory /tmp/rsync_dest

./

2

3

sent 127 bytes  received 53 bytes  360.00 bytes/sec

total size is 0  speedup is 0.00

-P 选项是显示同步过程,比如速率,示例如下:

# rsync -avP /root/rsync/ /tmp/rsync_dest/

sending incremental file list

created directory /tmp/rsync_dest

./

1

0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=3/5)

123.txt -> /root/123.txt

2

0 100%    0.00kB/s    0:00:00 (xfer#2, to-check=1/5)

3

0 100%    0.00kB/s    0:00:00 (xfer#3, to-check=0/5)

sent 209 bytes  received 75 bytes  568.00 bytes/sec

total size is 13  speedup is 0.05

-u 选项如果目标文件中的文件比源文件新,则不同步,示例如下:

# rsync -avPu /root/rsync/ /tmp/rsync_dest/  //加-u保留之前文件内容

sending incremental file list

./

sent 89 bytes  received 15 bytes  208.00 bytes/sec

total size is 13  speedup is 0.12

# cat 1   查看文件没有被覆盖

afdgagadsga

dagdkdgja

agdaga

adgaga

3. rsync通过ssh同步

ssh同步到另外一台主机

示例如下:

# rsync -av /etc/passwd 172.16.111.110:/tmp/aming.txt   把文件拷贝过去

[email protected]'s password:

sending incremental file list

passwd

sent 1460 bytes  received 31 bytes  271.09 bytes/sec

total size is 1386  speedup is 0.93

# rsync -avP  172.16.111.110:/tmp/aming.txt /tmp/123.txt  把文件拷贝过来

[email protected]'s password:

receiving incremental file list

aming.txt

1386 100%    1.32MB/s    0:00:00 (xfer#1, to-check=0/1)

sent 30 bytes  received 1468 bytes  332.89 bytes/sec

total size is 1386  speedup is 0.93

假设对方机器端口不是22的话,那应该如何,示例如下:

# rsync -avP -e "ssh -p 22 " /etc/passwd 172.16.111.110:/tmp/aming.txt

[email protected]'s password:

sending incremental file list

passwd

1386 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)

sent 1460 bytes  received 31 bytes  331.33 bytes/sec

total size is 1386  speedup is 0.93

# ssh -p 22 172.16.111.110   通过输入端口远程连接对方机器

[email protected]'s password:

Last failed login: Tue Dec  5 19:45:42 CST 2017 from 172.16.111.100 on ssh:notty

There were 2 failed login attempts since the last successful login.

Last login: Tue Dec  5 19:34:02 2017 from 172.16.111.1

# 登出

Connection to 172.16.111.110 closed.

原文地址:http://blog.51cto.com/ccj168/2066784

时间: 2024-10-06 23:57:09

rsync工具的常用选项、ssh同步介绍的相关文章

mysqldump工具的常用选项及锁表

最近在看mysql锁表的帮助文档时发现以前使用mysqldump备份时锁表有一点问题,以前在做备份写脚本时是这样锁表的mysql -A -Bse "flush tables with read lock;",后面看了官方文档知道其实这样是无效的,因为flush tables with read lock;语句在mysql的session退出后会隐式执行unlock tables,那么flush tables with read lock;只有在mysql的session不退出的情况下在

Service系统服务(六):rsync基本用法、rsync+SSH同步、配置rsync服务端、访问rsync共享资源、使用inotifywait工具、配置Web镜像同步、配置并验证Split分离解析

一.rsync基本用法 目标: 本例要求掌握远程同步的基本操作,使用rsync命令完成下列任务: 1> 将目录 /boot 同步到目录 /todir 下   2> 将目录 /boot 下的文档同步到目录 /todir 下   3> 在目录 /boot 下新增文件 a.txt,删除 /todir 下的子目录 grub2,再次同步使 /todir 与 /boot 一致   4> 验证 -a.-n.-v.--delete 选项的含义 方案: 本地同步操作: rsync [选项...] 本

10.28 rsync工具介绍 - 10.29/10.30 rsync常用选项 - 10.31 rsync通过ssh同步

- 10.28 rsync工具介绍 - 10.29/10.30 rsync常用选项 - 10.31 rsync通过ssh同步 # 10.28 rsync工具介绍 -/A目录 --> /B目录(A目录更新了一个文件,每次更新都需要把A目录拷贝到B目录),如果用cp命令 比较浪费时间,耗费磁盘空间,磁盘压力 读写之类的, -使用rsync -av /etc/passwd /tmp/1.txt -a选项就是包含了好几个选项  ,v 是可视化,可以看到拷贝的过程 ``` [[email protecte

rsync工具的介绍与常用选项,rsync通过ssh同步

rsync工具介绍 一个系统管理员,数据备份是必不可少,在Linux系统下数据备份的工具很多,其中重点介绍就是rsync工具,rsync不仅可以远程同步数据,还可以本地同步数据,且不会覆盖以前的数据在已经存在的数据情况下,而是先判断已经存在的数据和新的数据差异,只有不同的时候才会把不同的部分覆盖. 以下举个例子: [[email protected] ~]# rsync -av /etc/passwd /tmp/1.txtsending incremental file listpasswd s

八周二次课(1月30日) 10.28 rsync工具介绍 10.29/10.30 rsync常用选项 10.31 rsync通过ssh同步

八周二次课(1月30日)10.28 rsync工具介绍10.29/10.30 rsync常用选项10.31 rsync通过ssh同步===================================================================================================================================================================rsync命令:是一个远程数据同步工具,可

10.28-10.29 rsync工具介绍及常用选项,rsync通过ssh同步

八周二次课(3月27日) 10.28 rsync工具介绍 10.29/10.30 rsync常用选项 10.31 rsync通过ssh同步 10.28 rsync工具介绍 Linux文件同步工具-rsync 此工具很重要,以后可能每天都需要用到.要熟悉熟练使用. 备份方式 本地备份,把数据从A的C目录传输到A的C目录.类似于cp,但是跟cp不一样. 远程备份,把数据从A传输到B上. 本地备份 rsync -av /etc/passwd /tmp/1.txt 远程备份 rsync -av /tmp

三十五、 rsync工具介绍、rsync常用选项、rsync通过ssh同步

三十五. rsync工具介绍.rsync常用选项.rsync通过ssh同步 一.rsync工具 数据备份,很重要. rsync工具:数据备份的工具.remote sync(远程同步) rsync可以远程同步数据(类似scp),也可以本地同步数据(类似cp). 不同于cp或scp的是,它不会覆盖以前的数据(当数据已存在),而是先判断已存在的数据和新数据的差异,只有数据不同时才会把不同的部分覆盖. 若没有rsync命令,就yum install -y rsync安装. # rsync -av /et

Linux centos7 rsync工具介绍、rsync常用选项、rsync通过ssh同步

一.rsync工具介绍 rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了--remote sync.rsync是Linux系统下的文件同步和数据传输工具,它采用"rsync"算法,可以将一个客户机和远程文件服务器之间的文件同步,也可以在本地系统中将数据从一个分区备份到另一个分区上.如果rsync在备份过程中出现了数据传输中断,恢复后可以继续传输不一致的部分.rsync可以执行完整备份或增量备份.它的主要特点有: 1.可以镜像保存整个目录树和文件系统: 2.可

rsync工具介绍、rsync常用选项、rsync通过ssh同步

rsync工具介绍 rsync同步工具(可以实现把一个文件拷贝到另一台机器,或者另一个目录,类似于cp命令但是又不同,当需要同步的源新增加了东西,可以只同步新增加的文件,而不需要整个覆盖.) 把/etc/passwd拷贝到tmp目录下并改名1.txt如下(其中选项a包含了很多选项,v是可视化.)rsync -av /etc/passwd /tmp/1.txt 把passwd拷贝到如下ip的一台机器的root用户下的tmp目录,并改名1.txt,之后需要输入对方密码.(不加用户名默认就是当前的用户