Rsync (attālā sinhronizācija) ir Linux / Unix utilīta, ko izmanto failu un direktoriju sinhronizēšanai un kopēšanai lokāli vai attālināti. Lielākā daļa Linux geeks izmanto Rsync, lai spoguļotu, dublētu vai migrētu datus dažādās mapēs, diskos un tīklos. Viena ievērojama iezīme ar komandu Rsync ir tā, ka tā izmanto “delta pārsūtīšanas algoritmu.”
Delta Transfer algoritms darbojas, atjauninot galamērķa direktoriju ar avota galamērķa saturu. Ja avota direktorijā tiek izveidotas izmaiņas vai jauns fails, palaižot komandu Rsync, tikai konkrētās izmaiņas tiks kopētas mērķa direktorijā. Lai sinhronizētu failus un direktorijus starp lokālo un attālo mašīnu, Rsync izmanto SSH.
Rsync instalēšana Linux
Rsync komanda ir iepriekš instalēta lielākajā daļā Linux operētājsistēmu. Tomēr dažu minimālu instalāciju gadījumā tas var nebūt. Varat instalēt Rsync, palaižot zemāk esošās komandas terminālā.
Vietnē CentOS & RHEL
yum instalēt rsync -y
Ubuntu un citos Debian izplatījumos
sudo apt instalēt rsync -y
Rsync pamata sintakse
rsync opcijas avota galamērķis
Dažas no standarta opcijām / parametriem, ko izmanto ar komandu Rsync:
-v: -verbose Verbose output
-r: datus kopē rekursīvi
-z: saspiest faila datus
-h: dod izvadi lasāmā formātā
-a: arhivējiet failus un direktoriju sinhronizācijas laikā
-progress Rāda pašreizējo Rsync uzdevumu gaitu.
Izmantojot opciju “-help”, varat redzēt visas komandas Rsync pieejamās opcijas.
$ rsync --help
20 populārākie Rsync piemēri Linux
Ņemot vērā šo detalizēto informāciju, sāksim ar 20 noderīgām Rsync komandu komandām, kuras varat izmantot ar Linux sistēmām. Mūsu izvēlētā operētājsistēma ir Ubuntu 20.04 LTS; tomēr sintaksei vajadzētu darboties arī citiem Linux izplatījumiem ar instalētu Rsync.
1. Kopējiet / sinhronizējiet failus lokāli, izmantojot opciju -v (verbose)
Tā ir visvienkāršākā komanda Rsync pat iesācējiem. Šajā piemērā mēs kopēsim failus starpOriģināls'direktoriju uz darbvirsmas uz'Dublēšana'direktorijā' / utt.mapi. Mēs iekļausim opciju -v (Verbose), lai rsync varētu sniegt informāciju par notiekošo.
rsync -v Original /
Viena lieta, kas jāatzīmē ar Rsync, ir tāda, ka, ja galamērķa direktorija nepastāv, tā to automātiski izveidos. Apskatīsim zemāk redzamo piemēru, kur mēs vēlamies kopēt failus direktorijā “Foss”Kas neeksistē.
2. Sinhronizēt / kopēt failus un direktorijus rekursīvi ar opciju -r
Iepriekš minētajā komandā, ja 'Oriģinālsmapi, tā tiktu izlaista. Tas ir parādīts attēlā zemāk.
Lai to pārvarētu, izmantojiet opciju -r (rekursīvs).
3. Sinhronizēt / kopēt failus starp vietējo mašīnu un attālo mašīnu
Pirms šī uzdevuma veikšanas jums ir jāzina vairāki parametri par attālo serveri / mašīnu: IP adrese, lietotājvārds un lietotāja parole.
Pamata sintakse, kuru mēs izmantosim, ir:
rsync [opcijas] [faili] [attālais lietotājvārds] @ [ip-adrese]: / [galamērķis]
Kopēsim failus no mūsuOriģināls'direktoriju uz darbvirsmas uz attālo serveri.
4. Sinhronizējiet / kopējiet failus un direktorijus no attālā servera uz vietējo datoru
Tāpat kā iepriekšējā komanda, mums būs jāzina attālā servera IP adrese. Šajā piemērā mēs sinhronizēsim failusDublēšana'mape servera mājas direktorijā uz mūsu vietējo datoru.
rsync -rv tuts @ 192.168. lpp.1.64: / home / tuts / Backup / home / tuts / Desktop / Original
5. Izmantojiet Rsync over SSH ar opciju -e
Lai nodrošinātu failu un mapju drošību, mēs izmantosim Rsync over Secure Shell Protocol (SSH). Turklāt, nodrošinot saknes / lietotāja paroli - SSH nodrošinās šifrēšanas pakalpojumus, nodrošinot to drošību.
Lai izmantotu SSH, mēs pievienosim opciju -e, kas norāda protokolu, kuru mēs vēlamies izmantot.
rsync -vre ssh Original / * tuts @ 192.168. lpp.1.64: / home / tuts
6. Rādīt progresu ar komandu Rsync
Situācijās, kad kopējat vairākus failus vai milzīgu failu, zinot, ka progress būs efektīvs. Par laimi, rsync ir nodrošināta šī opcija --progresu'variants.
sudo rsync -rv - progress Original / * / etc / Foss
7. Izmantojiet Rsync ar opciju '-include'
Ir situācijas, kad vēlaties sinhronizēt tikai konkrētus failus. Izmantojot komandu Rsync, jūs-iekļaut'iespēja veikt uzdevumu. Šajā piemērā mēs tikai sinhronizēsim failus, kas sākas ar burtu “I”.
sudo rsync -vr - iekļauj 'I *' Original / / etc / Backup /
8. Izmantojiet opciju Rsync with '-exclude', lai ignorētu konkrētus failus
Ar Rsync '-izslēgt', varat izslēgt failus, kurus nevēlaties sinhronizēt / kopēt. Šajā piemērā mēs vēlamies ignorēt visus failus, kas sākas ar burtu “I”.
sudo rsync -vr - izslēgt “I *” Original / / etc / Backup /
Alternatīvi, vienā komandā varat izmantot abas opcijas. Skatiet piemēru zemāk.
sudo rsync -vr - izslēgt '*' - iekļaut 'I *' Original / / etc / Backup /
Mēs izslēdzam visus failus, izņemot tos, kas sākas ar burtu “I."
9. Izmantojiet komandu Rsync with -delete
Pastāv situācijas, kad faili atrodas mērķa direktorijā, bet ne avota mapē. Sinhronizācijai vislabāk būtu vispirms noņemt šādus failus no mērķa direktorijas. Par laimi, Rsync nāk ar-dzēst', kas to dara automātiski.
Ja galamērķa direktorijā ir fails, bet avotā nav, tas to izdzēsīs.
rsync -vr --delete / etc / Backup / tuts @ 192.168. lpp.1.64: / home / tuts / Dublēšana
10. Iestatiet maksimālo failu lielumu, kas jāpārsūta ar Rsync
Ja jūs interesē atmiņas vai joslas platums failu attālajai sinhronizēšanai, jums jāizmanto opcija '-max-size' ar komandu Rsync. Šī opcija ļauj iestatīt maksimālo kopējamā faila lielumu.
Piemēram,-max-izmērs = 100k"pārsūtīs tikai datus, kas ir vienādi vai mazāki par 100 kilobaitiem.
rsync -vr --max-size = '200k' / etc / Backup / tuts @ 192.168. lpp.1.64: / home / tuts / Dublēšana
11. Pēc veiksmīgas pārsūtīšanas automātiski izdzēsiet avota failus
Uzņemiet situāciju, kad datorā ir attāls rezerves serveris un dublējuma katalogs. Pirms datu sinhronizācijas ar dublēšanas serveri, dublējat datus datora dublējuma mapē. Pēc katras sinhronizācijas jums būs jāizdzēš dati dublējuma direktorijā.
Par laimi, to var izdarīt automātiski, izmantojot--noņemt avota failus'variants.
Izpildot komandu “ls” avota mapē, mēs apstiprinām, ka faili patiešām tika izdzēsti.
12. Veiciet sausu darbību ar Rsync
Iesācējiem, kuri nav pārliecināti par komandu Rsync, varat sajaukt galamērķa direktorijas saturu, un atsaukšana varētu būt tikpat garlaicīga. Ar '-sausā režīmā'Rsync komanda dos jums izvadi no tā, kas tiks veikts, taču tas to nedarīs.
Tādēļ jūs varat apskatīt šo izvadi, ja tas ir tas, ko jūs sagaidāt, pirms dodaties o, lai noņemtu '-sausā režīmā'variants.
rsync -vr --dry-run Original / * tuts @ 192.168. lpp.1.64: / home / tuts / Dublēšana
13. Iestatiet joslas ierobežojumu, kas nepieciešams failu pārsūtīšanai.
Ja esat koplietojamā tīklā vai izmantojat vairākas programmas, kurām nepieciešams interneta savienojums, būtu efektīvi iestatīt joslas platuma ierobežojumu, kas nepieciešams failu sinhronizēšanai / kopēšanai attālināti. Mēs to varam izdarīt ar Rsync '-bwlimit'variants.
Šis ātrums tiek aprēķināts kilobaitos. Tāpēc, kad-bwlimit = 1000nozīmē, ka sekundē var pārsūtīt tikai 1000 KB.
rsync -vr --bwlimit = 1000 Oriģināls / * tuts @ 192.168. lpp.1.64: / home / tuts / Dublēšana
14. Sinhronizēt visus failus ar Rsync
Pēc noklusējuma Rsync sinhronizē tikai modificētos blokus un baitus. Tādēļ, ja jūs jau iepriekš esat sinhronizējis teksta failu un vēlāk sinhronizējot dažus tekstus esat pievienojis avota failam, tiks kopēts tikai ievietotais teksts. Ja vēlaties vēlreiz sinhronizēt visu failu, jums būs jāizmanto opcija '-W'.
rsync -vrW Original / * tuts @ 192.168. lpp.1.64: / home / tuts / Dublēšana
15. Nevar sinhronizēt / kopēt modificētos failus mērķa direktorijā
Pastāv situācijas, kad esat veicis izmaiņas failos, kas atrodas mērķa mapē. Ja palaižat komandu Rsync, šīs modifikācijas tiks pārrakstītas ar tām, kas atrodas avota failā. Lai no tā izvairītos, izmantojiet opciju '-u'.
rsync -vu Original / * tuts @ 192.168. lpp.1.64: / home / tuts / Dublēšana
16. Izmantojiet opciju Rsync with -i, lai skatītu failu atšķirību starp avotu un galamērķi
Ja vēlaties uzzināt, kādas jaunas izmaiņas tiks veiktas galamērķa direktorijā, izmantojiet opciju '-i', kas parādīs failu atšķirību starp avota un mērķa direktoriju.
rsync -avzi Original / Backup /
Veidojiet izvadi augšējā attēlā, un mēs redzam failu ar nosaukumu "heloo.py ' nav galamērķa direktorijā. Apskatīsim dažus no šiem parametriem.
d: parāda izmaiņas mērķa failā
f: apzīmē failu
t: parāda laika zīmogu maiņu
s: norāda faila lieluma izmaiņas
17. Izmantojiet Rsync, lai kopētu tikai direktoriju struktūru
Varat izmantot Rsync, lai sinhronizētu tikai direktoriju struktūru, ja faili jūs neinteresē. Pirms avota direktorija mums būs jāizmanto parametri -f ”+ * /” -f ”- *”.
rsync -av -f "+ * /" -f "- *" / home / tuts / Desktop / Original / / home / tuts / Documents /
18. Pievienojiet datuma zīmogu direktorija nosaukumam
Ja vēlaties izsekot, kad pārsūtīšana notika, neatverot direktorijas rekvizītus, direktorijas nosaukumam varat viegli pievienot datumu. Tas pievienos datuma zīmogu visām sinhronizācijām, kuras veicat ar Rsync.
Lai to izdarītu, mēs pievienosim $ (datums + \\% Y - \\% m - \\% d) uz galamērķa direktoriju.
sudo rsync -rv Original / / etc / $ (datums + \\% Y - \\% m - \\% d)
19. Kopējiet vienu failu lokāli
Lai sinhronizētu / kopētu vienu failu ar Rsync, jums būs jānorāda faila ceļš, kam seko mērķa direktorijas ceļš.
rsync -v Original / heloo.py dublējums /
20. Vairāku failu kopēšana no attāluma
Lai vienlaikus kopētu vairākus failus, jums jānorāda ceļš uz visiem tiem. Šī metode ir efektīva tikai nelielam skaitam failu.
rsync -vr / home / tuts / Desktop / Original / heloo.py / home / tuts / Desktop / Backup / index.html tuts @ 192.168. lpp.1.64: / home / tuts / Dublēšana
Tas viss ir par 20 noderīgākajiem Rsync piemēriem, kas ļaus sinhronizēt failus un direktorijus gan lokāli, gan attālināti. Droši atstājiet savas atsauksmes un komentārus zemāk.