Sådan bruges Rsync til at synkronisere nye eller ændrede/modificerede filer i Linux


Som systemadministrator eller Linux-strømbruger har du sandsynligvis stødt på eller endda flere gange brugt det alsidige Linux Rsync-værktøj, som gør det muligt for brugere hurtigt at kopiere eller synkronisere filer lokalt og eksternt. Det er også et godt værktøj, der populært bruges til sikkerhedskopiering og spejling.

Nogle af dets fremtrædende funktioner og fordele inkluderer; det er usædvanligt alsidigt, fordi det kan kopiere lokalt til/fra en ekstern shell eller ekstern rsync, det er også bemærkelsesværdigt fleksibelt, så brugerne kan angive et hvilket som helst antal filer, der skal kopieres.

Desuden tillader det kopiering af links, enheder, fil- eller katalogejer, grupper og tilladelser. Det understøtter også brug uden rodprivilegier kombineret med mange flere.

En vigtig forskel på rsync i sammenligning med andre fil-coying-kommandoer i Linux er dens brug af fjernopdateringsprotokollen for kun at overføre forskellen mellem filer eller biblioteksindhold.

Derfor skal vi i denne artikel undersøge, hvordan rsync kun kan hjælpe os med at synkronisere nye eller ændrede filer eller biblioteksindhold, mens vi laver sikkerhedskopier og videre i Linux.

Til at begynde med skal du huske, at den konventionelle og enkleste form for brug af rsync er som følger:

# rsync options source destination 

Når det er sagt, lad os dykke ned i nogle eksempler for at afdække, hvordan konceptet ovenfor faktisk fungerer.

Synkronisering af filer lokalt ved hjælp af Rsync

Ved hjælp af kommandoen nedenfor kan jeg kopiere filer fra min Dokumentmappe til/tmp/dokumentmappen lokalt:

$ rsync -av Documents/* /tmp/documents

I kommandoen ovenfor er indstillingen:

  1. -a - betyder arkivtilstand
  2. -v - betyder detaljeret, der viser detaljer om igangværende operationer

Som standard kopierer rsync kun nye eller ændrede filer fra en kilde til destination, når jeg tilføjer en ny fil til min Dokumentmappe, dette sker efter at have kørt den samme kommando anden gang:

$ rsync -av Documents/* /tmp/documents

Som du kan se og bemærke fra kommandoens output, kopieres kun den nye fil til destinationsmappen.

Indstillingen --update eller -u giver rsync mulighed for at springe filer over, der stadig er nye i destinationsmappen, og en vigtig mulighed, --dry-run eller -n giver os mulighed for at udføre en testoperation uden at foretage ændringer. Det viser os, hvilke filer der skal kopieres.

$ rsync -aunv Documents/* /tmp/documents

Efter at have udført en testkørsel kan vi derefter fjerne -n og udføre en reel operation:

$ rsync -auv Documents/* /tmp/documents

Synkronisering af filer fra lokal til ekstern Linux

I eksemplet nedenfor kopierer jeg filer fra min lokale maskine til en fjernbetjening med IP-adressen - 10.42.1.5. For kun at synkronisere nye filer på den lokale maskine, der ikke findes på den eksterne maskine, kan vi inkludere indstillingen --ignore-existing :

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

Efterfølgende, for kun at synkronisere opdaterede eller ændrede filer på den eksterne maskine, der er ændret på den lokale maskine, kan vi udføre en tørkørsel, før vi kopierer filer som nedenfor:

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

For at opdatere eksisterende filer og forhindre oprettelse af nye filer i destinationen bruger vi indstillingen --eksisterende .

Du kan løbe igennem siden rsync man for at finde yderligere nyttige muligheder til avanceret brug, som jeg tidligere har nævnt, rsync er et meget kraftfuldt og alsidigt Linux-værktøj, og mange systemadministratorer og Linux-strømbrugere ved lige hvor fordelagtig det er.

Vigtigst er det, at du lige så godt kan dele dit syn på de eksempler, vi har dækket her eller endnu bedre, tilbyde os værdifulde tip til brug af dette vigtige kommandolinjeværktøj gennem kommentarfeltet nedenfor.