作用:a机器文件传输到b机器,远程备份.也可以本机到本机.
需求: 将a目录下的数据拷贝到b目录下去,且a一直在更新,每小时拷贝一次
可以使用此命令,rsync, 特点:实现增量拷贝
假设;如果a只更新了一个文件,那么在只要rsync 进行同步时,只同步更新的这个文件
本机同步
yum install -y rsync #安装命令
rsync -av /etc/passwd /tmp/1.txt #将/etc/passwd文件拷贝到/tmp下且更改名称为1.txt -av v是可视化
远程同步:
格式:
rsync -av 路径 ip地址:路径
rsync -av /tmp/1.txt root@192.168.188.128:/tmp/2.txt #将本机/tmp下的文件,同步到192.168.188.128机器里/tmp下改名为2.txt root@可以省略
格式介绍: rsync [OPTION] … SRC DEST #OPTION选项,好比刚才的-av SRC 源目录 DEST目标目录
rsync [OPTION] … [user@]host:SRC DEST
例如: rsync -av 192.168.188.128:/tmp/2.txt /tmp/1.txt #与上个例子相反,将192.168.188.128:/tmp/2.txt 这个文件拷贝到我这个机器上
常用选项;
-a 包含-rtplgoD -r 同步目录时要加上,类似cp时的-r选项 -v 同步时显示一些信息,让我们知道同步的过程 -l 保留软连接 #源目录里面有软连接, -L 加上该选项后,同步软链接时会把源文件给同步 -p 保持文件的权限属性 -o 保持文件的属主 #如果a拷贝到b,b有这个属主,则显示用户,如果没有这个用户,则显示pid -g 保持文件的属组 -D 保持设备文件信息 -t 保持文件的时间属性 --delete 删除目标目录中源目录没有的文件 #如果a同步到b,如果b里面有a里面没有的文件,则被删除,如果不加,则不会删除,这样保证文件的一致性 --exclude 过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步
-P 显示同步过程,比如速率,比-v更加详细 -u 加上该选项后,如果目标目录中的文件比源文件新,则不同步 (mtime) -z 传输时压缩 节省带宽,加快速度
示例;
rsync -av /root/111/ /tmp/111_dest/ #将/root/111/的目录拷贝到 /tmp下,并做改名为111_dest名称
rsync -avL /root/111 /tmp/111_dest #a本来里面有l,而此参数有L,这种情况时,l的含义则会被覆盖,l会被忽略,红款中,显示为再次同步的文件
rsync -avL --exclude ".txt" /root/111/ /tmp/111_dest/ # 过滤源文件中,所有以txt结尾的,将其他文件进行同步
可以指定多个exclude
rsync通过ssh方式同步 前提:两个机器都装有rsync的命令
rsync -av test1/ 192.168.133.132:/tmp/test2/ rsync -av -e "ssh -p 22" test1/ 192.168.133.132:/tmp/test2/ #指定对方机器的端口-e "ssh -p 22"