Kā izmantot Rsync, lai sinhronizētu jaunus vai mainītus/modificētus failus Linux


Kā sistēmas administrators vai Linux enerģijas lietotājs, iespējams, esat saskāries vai pat vairākkārt izmantojis daudzpusīgo Linux Rsync rīku, kas lietotājiem ļauj operatīvi kopēt vai sinhronizēt failus lokāli un attālināti. Tas ir arī lielisks rīks, ko tautā izmanto dublēšanas darbībām un spoguļošanai.

Dažas no tās izcilajām iezīmēm un priekšrocībām ir: tas ir ārkārtīgi daudzpusīgs, jo to var kopēt lokāli uz/no attālās čaulas vai attālās rsync, tas ir arī ļoti elastīgs, ļaujot lietotājiem norādīt jebkuru kopējamo failu skaitu.

Turklāt tas ļauj kopēt saites, ierīces, failu vai direktoriju īpašnieku, grupas un atļaujas. Tas arī atbalsta lietošanu bez root tiesībām kopā ar daudzām citām.

Viena obligāta rsync atšķirība, salīdzinot ar citām Linux failu komandām, ir attālās atjaunināšanas protokola izmantošana, lai pārsūtītu tikai atšķirību starp failiem vai direktoriju saturu.

Tāpēc šajā rakstā mēs izpētīsim, kā rsync var mums palīdzēt tikai sinhronizēt jaunus vai mainītus failus vai direktoriju saturu, vienlaikus veicot dublējumus un ārpus Linux.

Vispirms jums jāatceras, ka parastā un vienkāršākā rsync izmantošanas forma ir šāda:

# rsync options source destination 

Tas nozīmē, ka iedziļināsimies dažos piemēros, lai atklātu, kā iepriekš minētā koncepcija faktiski darbojas.

Failu sinhronizēšana lokāli, izmantojot Rsync

Izmantojot zemāk esošo komandu, es varu kopēt failus no sava dokumentu direktorija uz/tmp/dokumentu direktoriju lokāli:

$ rsync -av Documents/* /tmp/documents

Iepriekš esošajā komandā opcija:

  1. -a - nozīmē arhīva režīmu
  2. -v - ir izteiksmīgs, parādot detalizētu informāciju par notiekošajām operācijām

Pēc noklusējuma rsync no avota uz galamērķi kopē tikai jaunus vai mainītus failus, kad mapē Dokumenti pievienoju jaunu failu, tas notiek pēc vienas un tās pašas komandas palaišanas otrreiz:

$ rsync -av Documents/* /tmp/documents

Kā jūs varat novērot un pamanīt no komandas izvades, galamērķa direktorijā tiek kopēts tikai jaunais fails.

Opcija --update vai -u ļauj rsync izlaist mērķa direktorijā vēl jaunus failus un vienu svarīgu opciju --dry-run vai -n ļauj mums veikt pārbaudes darbību, neveicot nekādas izmaiņas. Tas mums parāda, kādi faili ir jākopē.

$ rsync -aunv Documents/* /tmp/documents

Pēc testa palaišanas mēs varam atcelt -n un veikt reālu darbību:

$ rsync -auv Documents/* /tmp/documents

Failu sinhronizēšana no lokālā uz attālo Linux

Tālāk sniegtajā piemērā es kopēju failus no savas vietējās mašīnas uz attālo krātuvi ar IP adresi - 10.42.1.5. Lai sinhronizētu tikai jaunus failus lokālajā mašīnā, kuru tālvadības mašīnā nav, mēs varam iekļaut opciju --ignore-existing :

$ rsync -av --ignore-existing Documents/* [email :~/all/

Pēc tam, lai sinhronizētu tikai atjauninātos vai modificētos failus uz attālās mašīnas, kas ir mainījušies lokālajā mašīnā, mēs varam veikt sausu darbību pirms failu kopēšanas, kā norādīts zemāk:

$ rsync -av --dry-run --update Documents/* [email :~/all/
$ rsync -av --update Documents/* [email :~/all/

Lai atjauninātu esošos failus un novērstu jaunu failu izveidi galamērķī, mēs izmantojam opciju --existing .

Varat palaist lapu rsync man , lai atklātu papildus noderīgas iespējas uzlabotai lietošanai, kā jau iepriekš minēju, rsync ir ļoti spēcīgs un daudzpusīgs Linux rīks, un daudzi sistēmas administratori un Linux enerģijas lietotāji zina tikai cik tas ir izdevīgi.

Vissvarīgākais ir tas, ka jūs varat arī dalīties ar savu viedokli par piemēriem, kurus mēs šeit aplūkojām, vai vēl labāk, piedāvājot mums vērtīgus padomus par šī svarīgā komandrindas rīka izmantošanu, izmantojot komentāru sadaļu.