|
|
楼主 |
发表于 2024-5-23 13:57:26
|
显示全部楼层
1.5.0 同步时删除多余文件
7 ^( G' {8 Q& c. Z在服务器A上同步/opt/work目录到远程服务器B的/tmp/work目录下同时删除B服务器/work/jira/data/目录下相比于A服务器/tmp/work中多余的文件,最近在处理策划资源文件的时候需要将目录A的文件全部同步到目录B的文件,并且把目录B内多余的文件全部删除掉。所以,就想到了使用rsync的--delete参数来实现功能; O) a7 H& |' I3 w/ ^6 ^. W
! L( B q; \: }6 \ ?% d1)A服务器
( ~+ S: V% n1 z: ?6 ~3 D[root@serverA ~]# cd /tmp/work
& H9 s7 a3 n. a _* q' M) v[root@serverA work]# ls
, L: ~* H+ \3 A# I2 o2 Ra b c d 11
3 Q6 t0 l2 Z# j2 i7 K8 o; E* k: w2 @# Q' d; `9 X
2)B服务器
2 J, v4 l2 [; v0 F1 e1 t+ w. H[root@serverB ~]# cd /tmp/work
I- V& J' P# x* i! b4 U[root@serverB work]# ls
7 V+ w, g, R4 d( z" L1 ]. q, {8 s X2 ?c d 11 12 13 fg 5t; V2 g9 N2 B* W* U+ \7 F
* a* ~, G5 K, I( Y# j# x$ z3 Q3)从A服务器同步到B服务器(假设B服务器ip是192.168.130.11)
" b( S: P+ [! ?5 z[root@serverA work]#rsync -avzP --delete rsync -avzhP --delete itadmin@192.168.130.11:/opt/data/ /work/jira/data/ #注意,--delete参数要放在源目录和目标目录前,并且两个目录结构一定要一致!不能使用./*
, R% ^6 U5 C! {9 k( xsending incremental file list! F/ }6 y1 k5 P1 d; q
./
0 }) m$ }/ O p; Xdeleting fg8 k: _$ X% O; Q' K: _
deleting 5t8 V; ]9 U. _( i/ g! n
deleting 13
# h4 j8 @# W; J, b+ C2 Ydeleting 12) p# E# }5 q5 s
11& R, ?3 i- y' K9 R/ o
a
" Z) p: H; P; q; yb
W0 x$ H8 p7 v$ t! |8 H( }5 R5 `c; ]# m! g7 z5 y* _+ I# S( S- F
d8 M# Y. Y* e' s4 _
1.5.1 保留同步文件权限、属主、属组等信息
% U5 c. Z9 K: m- ?, y% Zrsync -avz /path/to/dirA/ /path/to/dirB/
3 Q* U/ d6 d9 r3 @1.5.2 不同步一些文件和目录
) N% c9 X+ X1 R3 y) L) p5 E' X7 B1 F" d+ M: e( r/ ?
rsync -avz --exclude="fileA1.txt" --exclude="/path/to/dirA/test/" /path/to/dirA/ /path/to/dirB/" A0 K0 |) P- p# |& B8 t+ p9 s2 o
rsync -avz --exclude 'fileA1.txt' --exclude '/path/to/dirA/test/' /path/to/dirA/ /path/to/dirB/
, f; x1 r! Z' _1.5.3 拷贝本地文件6 W" H: w W- U* @& n& \, a
rsync -ahvz backup.tar.gz dirA/ # DESC 不存在时自动创建5 D z6 J- L" w5 v( i! E4 U
rsync -ahvz backup.tar.gz /path/to/dirA/ /path/to/dirB/- {6 X- r" g4 @7 L
1.5.4 shell拷贝到远程(推送)
5 h+ k# \$ G' o9 Drsync -avz /path/to/dirA/ user@remoteip:/path/to/dirB/
# a% S( s* O g: O' K' m" G3 _ D+ |. ^1.5.5 shell拷贝到本地(拉取): ^1 K. s: q) _- w1 K
rsync -avz user@remoteip:/path/to/dirA/ /path/to/dirB/; { ~; z* u2 D, D6 `$ {
1.5.6 远程rsync服务器拷贝到本地
: ?; A9 X1 ]. Z4 X6 xrsync -av user@remoteip::www /path/to/dirB/ #www为rsync模块命令& o* y$ @. Y$ D4 p" I
1.5.7 拷贝本地文件到rsync服务器
& k* w8 e: D+ o6 jrsync -av /path/to/dirB/ user@remoteip::www $ u9 Q7 H# X! ?8 |( N7 k( h1 U1 W
1.5.8 rsync 使用非默认端口传输
' c7 l; J; s; |+ v) H/ O2 ~9 brsync -avz -e "ssh -p $port"/path/to/dirA/ user@remoteip:/path/to/dirB/: H, p H! M2 H. j, o
1.5.9 显示备份进度* ^" I# h! i( E/ [$ E) F! R
可以使用 --progress或者P 选项来显示进度
4 p9 \# _/ ^* ?0 k1 h% Y7 p, l7 M8 e% ]
rsync -avzhe ssh --progress /path/to/dirA/ root@remoteip:/path/to/dirB/ |
|