|
|
楼主 |
发表于 2024-5-23 13:57:26
|
显示全部楼层
1.5.0 同步时删除多余文件
. j1 X# o9 T1 P' ~7 F+ L在服务器A上同步/opt/work目录到远程服务器B的/tmp/work目录下同时删除B服务器/work/jira/data/目录下相比于A服务器/tmp/work中多余的文件,最近在处理策划资源文件的时候需要将目录A的文件全部同步到目录B的文件,并且把目录B内多余的文件全部删除掉。所以,就想到了使用rsync的--delete参数来实现功能
, _/ y5 z0 S, v; ?- P+ L
, T; M0 |+ k5 _% M1)A服务器
% Y5 F( K( Z8 J+ C8 H[root@serverA ~]# cd /tmp/work
2 t+ ?" s+ F1 C; \, l1 c3 s[root@serverA work]# ls( u6 V+ J& [+ e' e# z
a b c d 11
" T* g3 F4 t. c
' u6 o+ L6 s |1 s2)B服务器6 e [- I. F. g5 R+ T5 g o
[root@serverB ~]# cd /tmp/work
/ @# d1 ]3 e8 Z' n& o9 E- h[root@serverB work]# ls
: Q7 F' u/ W) h r# p! a3 jc d 11 12 13 fg 5t2 |2 e, u% Q& `2 V* |% ~# o+ H
% c5 |0 j$ N2 `: g6 l3)从A服务器同步到B服务器(假设B服务器ip是192.168.130.11)
! a7 v% A$ g$ V4 e7 }2 r[root@serverA work]#rsync -avzP --delete rsync -avzhP --delete itadmin@192.168.130.11:/opt/data/ /work/jira/data/ #注意,--delete参数要放在源目录和目标目录前,并且两个目录结构一定要一致!不能使用./*+ }( T& _- B5 K: Z" ]& Z, h
sending incremental file list
5 H8 u5 V7 ]1 f! X) p9 x./
9 [# o. A ?0 B2 V$ L2 L; [7 ~deleting fg
- D* n8 T+ Y" V$ w# b( `9 ndeleting 5t3 s U4 k* S* W6 F1 I
deleting 13
' p" O) m) p" t$ {( Cdeleting 12
6 A; ?" j! b+ s8 p117 S8 W/ _7 h7 i9 e# z. {# _3 Y
a
! u3 q: h4 A" G7 h5 v Mb
9 ~; t3 i! u. d0 |! m; M- qc
* S1 \; b" ?2 Yd0 F/ @- }# U" n) r+ ^
1.5.1 保留同步文件权限、属主、属组等信息
- |+ g% D' l: d3 @rsync -avz /path/to/dirA/ /path/to/dirB/
, U8 w3 \# c) g0 P! d1.5.2 不同步一些文件和目录
6 J' V& f. |5 t% K# G1 _1 v+ s' Y
rsync -avz --exclude="fileA1.txt" --exclude="/path/to/dirA/test/" /path/to/dirA/ /path/to/dirB/+ x1 M( Y8 k- i, w7 ], T
rsync -avz --exclude 'fileA1.txt' --exclude '/path/to/dirA/test/' /path/to/dirA/ /path/to/dirB/
4 q/ ^6 z) R2 u1.5.3 拷贝本地文件
7 i2 _& h2 \* P s0 l; K6 l* k B1 ersync -ahvz backup.tar.gz dirA/ # DESC 不存在时自动创建; ^8 L: m- j' g4 Q
rsync -ahvz backup.tar.gz /path/to/dirA/ /path/to/dirB/
& p/ w6 K9 J1 g6 k! q, s% \1.5.4 shell拷贝到远程(推送)
3 F6 x, W2 \& ]- s& I2 I* I: Drsync -avz /path/to/dirA/ user@remoteip:/path/to/dirB/
9 Z. g& h! p# q# ]( C$ z0 k7 ]1.5.5 shell拷贝到本地(拉取)
. a6 C$ h6 B V' _& \rsync -avz user@remoteip:/path/to/dirA/ /path/to/dirB/
7 `- @: ?% h; a: E* R5 W1.5.6 远程rsync服务器拷贝到本地( N4 A+ M; r* g! B/ }, u
rsync -av user@remoteip::www /path/to/dirB/ #www为rsync模块命令
' m6 o0 {! S" v8 d1.5.7 拷贝本地文件到rsync服务器
* u! S$ u$ f# i) w0 ~- R! Hrsync -av /path/to/dirB/ user@remoteip::www 2 @0 |8 P6 w. k3 K/ ]/ F- x! ]4 {% P
1.5.8 rsync 使用非默认端口传输8 |* ]' [$ L4 W' S
rsync -avz -e "ssh -p $port"/path/to/dirA/ user@remoteip:/path/to/dirB/
( H- g/ e1 i8 R9 f1.5.9 显示备份进度
' A) l0 T, Z1 b6 {* `. \7 ?可以使用 --progress或者P 选项来显示进度/ t- m3 O6 O' F0 u8 k! _' a
9 f4 }( Y; r& ~, p" G. Z2 t [
rsync -avzhe ssh --progress /path/to/dirA/ root@remoteip:/path/to/dirB/ |
|