linux如何同步文件,Linux系统如何同步文件?linux系统使用rsync同步的技巧

假如你是一位运维工程师,你很大概谋面临几十台、几百台甚至上千台处事器,除了批量操纵外,情况同步、数据同步也是必不行少的技术。

说到“同步”,不得不提的利器就是rsync,本日就来说说我从这个东西中看到的同步的艺术。

[不带任何选项]

我们常常这样利用rsync:

$ rsync main.c machineB:/home/userB

1 只要目标端的文件内容和源端纷歧样,就会触发数据同步,rsync会确保双方的文件内容一样。

2 但rsync不会同步文件的“modify time”,每每有数据同步的文件,目标端的文件的“modify

time”老是会被修改为最新时刻的时间。

3

rsync不会太存眷目标端文件的rwx权限,假如目标端没有此文件,那么权限会保持与源端一致;假如目标端有此文件,则权限不会跟着源端改观。

4 只要rsync有对源文件的读权限,且对方针路径有写权限,rsync就能确保目标端文件同步到和源端一致。

5

rsync只能以登岸目标端的账号来建设文件,它没有本领保持目标端文件的输主和属组和源端一致。(除非你利用root权限,才有资格要求属主一致、属组一致)

[-t选项]

我们常常这样利用-t选项:

$ rsync -t main.c machineB:/home/userB

1 利用-t选项后,rsync总会想着一件事,那就是将源文件的“modify time”同步到方针呆板。

2

带有-t选项的rsync,会变得更智慧些,它会在同步前先比拟双方文件的时间戳和文件巨细,假如一致,则就认为双方文件一样,对此文件就不再采纳更新行动了。

3

因为rsync的智慧,也会反被智慧误。假如目标端的文件的时间戳、巨细和源端完全一致,可是内容刚巧纷歧致时,rsync是发明不了的。这就是传说中的“坑”!

4 对付rsync自作智慧的环境,办理步伐就是利用-I选项。

[-I选项]

我们常常这样利用-I选项:

$ rsync -I main.c machineB:/home/userB

1 -I选项会让rsync变得很乖很诚恳,它会挨个文件去提倡数据同步。

2 -I选项可以确保数据的一致性,价钱即是速度上会变慢,因为我们放弃了“quick check”计策。(quick

check计策,就是先查察文件的时间戳和文件巨细,依次先解除一批认为沟通的文件)

3 无论环境如何,目标端的文件的modify time总会被更新到当前时刻。

【-v选项】

这个选项,简朴易懂,就是让rsync输出更多的信息,我们可以举一个例子:

$ rsync -vI main.c machineB:/home/userB

main.c

sent 81 bytes  received 42 bytes  246.00 bytes/sec

total size is 11  speedup is 0.09

你增加越多的v,就可以得到越多的日志信息。

$ rsync -vvvvt abc.c machineB:/home/userB

cmd= machine=machineB user= path=/home/userB

cmd[0]=ssh cmd[1]=machineB cmd[2]=rsync cmd[3]=--server cmd[4]=-vvvvte. cmd[5]=. cmd[6]=/home/userB

opening connection using: ssh machineB rsync --server -vvvvte. . /home/userB

note: iconv_open("ANSI_X3.4-1968", "ANSI_X3.4-1968") succeeded.

(Client) Protocol versions: remote=28, negotiated=28

(Server) Protocol versions: remote=30, negotiated=28

[sender] make_file(abc.c,*,2)

[sender] flist start=0, used=1, low=0, high=0

[sender] i=0  abc.c mode=0100664 len=11 flags=0

send_file_list done

file list sent

send_files starting

server_recv(2) starting pid=31885

recv_file_name(abc.c)

received 1 names

[receiver] i=0   abc.c mode=0100664 len=11

recv_file_list done

get_local_name count=1 /home/userB

recv_files(1) starting

generator starting pid=31885 count=1

delta transmission enabled

recv_generator(abc.c,0)

abc.c is uptodate

generate_files phase=1

send_files phase=1

recv_files phase=1

generate_files phase=2

send files finished

total: matches=0  hash_hits=0  false_alarms=0 data=0

generate_files finished

recv_files finished

client_run waiting on 14318

sent 36 bytes  received 16 bytes  104.00 bytes/sec

total size is 11  speedup is 0.21

_exit_cleanup(code=0, file=main.c, line=1031): entered

_exit_cleanup(code=0, file=main.c, line=1031): about to call exit(0)

[-z选项]

这是个压缩选项,只要利用了这个选项,rsync就会把发向对端的数据先举办压缩再传输。对付网络情况较差的环境下发起利用。

一般环境下,-z的压缩算法会和gzip的一样。

[-r选项]

我们在第一次利用rsync时,往往会碰着这样的囧境:

$ rsync superman machineB:/home/userB

skipping directory superman

假如你不特别汇报rsync你需要它帮你同步文件夹的话,它是不会主动包袱的,这也正是rsync的懒惰之处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值