Kā lietot rsync dublēt datus uz Linux

Satura rādītājs:

Kā lietot rsync dublēt datus uz Linux
Kā lietot rsync dublēt datus uz Linux

Video: Kā lietot rsync dublēt datus uz Linux

Video: Kā lietot rsync dublēt datus uz Linux
Video: How To Fix Windows 10 File Explorer Crashing - YouTube 2024, Marts
Anonim
rsync ir protokols, kas izstrādāts Unix līdzīgām sistēmām, kas sniedz neticamu daudzpusību datu dublēšanai un sinhronizēšanai. To var izmantot lokāli, lai dublētu failus dažādos direktorijās vai arī tos varētu konfigurēt, lai sinhronizētu internetu ar citiem saimniekiem.
rsync ir protokols, kas izstrādāts Unix līdzīgām sistēmām, kas sniedz neticamu daudzpusību datu dublēšanai un sinhronizēšanai. To var izmantot lokāli, lai dublētu failus dažādos direktorijās vai arī tos varētu konfigurēt, lai sinhronizētu internetu ar citiem saimniekiem.

To var izmantot Windows sistēmās, bet tas ir pieejams tikai ar dažādām ostām (piemēram, Cygwin), tādēļ šajā gadījumā mēs runāsim par tā iestatīšanu uz Linux. Pirmkārt, mums ir jāinstalē / jāatjaunina rsync klients. Red Hat distribūcijās komanda ir "yum install rsync", bet Debian - "sudo apt-get install rsync".

 Red Hat / CentOS komanda pēc piesakoties kā root (ņemiet vērā, ka daži jaunie Red Hat izplatītāji atbalsta sudo metodi).
Red Hat / CentOS komanda pēc piesakoties kā root (ņemiet vērā, ka daži jaunie Red Hat izplatītāji atbalsta sudo metodi).
 Debian / Ubuntu komanda.
Debian / Ubuntu komanda.

Izmantojot rsync lokālajām dublējumkopijām

Šīs apmācības pirmajā daļā mēs dublēsim failus no Directory1 uz Directory2. Abi šie katalogi atrodas tajā pašā cietajā diskā, taču tas darbosies tieši tādā pašā veidā, ja katalogi pastāvētu divos dažādos diskdziņos. Mēs varam to izdarīt vairākos dažādos veidos, atkarībā no tā, kāda veida dublējumkopijas vēlaties konfigurēt. Lielākajā daļā gadījumu pietiek ar šādu kodu:

$ rsync -av --delete /Directory1/ /Directory2/

Iepriekš minētais kods sinhronizēs Directory1 saturu ar Directory2 un neatstās atšķirības starp abiem. Ja rsync konstatē, ka Directory2 ir fails, ko Directory1 nedarbojas, tas to dzēsīs. Ja rsync atrod failu, kas ir mainīts, izveidots vai dzēsts katalogā1, tas atspoguļos tās pašas izmaiņas katalogā2.

Ir daudz dažādu slēdžu, kurus varat izmantot rsync, lai to personalizētu atbilstoši savām vajadzībām. Šeit ir tas, ko iepriekšminētais kods rsync informē par dublējumiem:

1. -a = rekursīvs (atkārtot katalogos), saites (kopēt simbīnītes kā simbīnītes), perms (saglabāt atļaujas), reizes (saglabāt modifikācijas laiku), grupu (saglabāt grupu), īpašnieku (saglabāt īpašnieku), saglabāt ierīces failus un saglabāt īpašus failus. 2. -v = verbose. Iemesls, ko es domāju, ka verbāls ir svarīgs, ir tas, ka jūs varat redzēt tieši to, ko rsync atbalsta. Padomājiet par to. Ko darīt, ja cietais disks slikti un sāk izdzēst failus bez jūsu zināšanām, tad palaižat savu rsync skriptu un nospiež šīs izmaiņas jūsu dublējumkopijās, tādējādi dzēšot visus faila gadījumus, kurus nevēlaties iegūt atbrīvoties no? 3. -delete = Tas norāda rsync, lai izdzēstu visus failus, kas ir Directory2, kas nav Directory1. Ja izvēlaties izmantot šo opciju, iepriekš minēto iemeslu dēļ es iesaku arī izmantot verbālās opcijas.

Izmantojot iepriekš minēto skriptu, šeit ir produkcija, kas ģenerēta, izmantojot rsync, lai dublētu Directory1 uz Directory2. Ņemiet vērā, ka bez verbose slēdzenes jūs nesaņemat šādu detalizētu informāciju.

Iepriekšējais ekrānuzņēmums norāda, ka File1.txt un File2.jpg tika konstatēti vai nu kā jauni, vai arī citādi mainīti no katalogiem 2 esošajām kopijām, un tāpēc tie tika dublēti. Noob padoms: iegaumējiet slīpsvītru kataloga beigās manā rsync komandā - tie ir nepieciešami, noteikti to atcerieties.
Iepriekšējais ekrānuzņēmums norāda, ka File1.txt un File2.jpg tika konstatēti vai nu kā jauni, vai arī citādi mainīti no katalogiem 2 esošajām kopijām, un tāpēc tie tika dublēti. Noob padoms: iegaumējiet slīpsvītru kataloga beigās manā rsync komandā - tie ir nepieciešami, noteikti to atcerieties.

Mēs turpināsim pāris vairāk parocīgiem slēdžiem šīs apmācības beigās, taču tikai atcerieties, ka, lai redzētu pilnu sarakstu, jūs varat ierakstīt "man rsync" un apskatīt pilnu sarakstu ar slēdžiem, kurus izmantot.

Tas attiecas uz vietējiem dublējumiem. Kā jūs varat pateikt, rsync ir ļoti viegli izmantot. Izmantojot to, lai sinhronizētu datus ar ārēju saimniekdatoru internetā, tas kļūst nedaudz sarežģītāks, taču mēs parādīsim vienkāršu, ātru un drošu veidu, kā to izdarīt.

Izmantojot rsync ārējām dublējumkopijām

Rsync var konfigurēt vairākos dažādos veidos, lai veiktu ārējās dublējumkopijas, taču mēs pārietam pie vispiemērotākās (arī vienkāršākās un drošākās) rsync tuneļošanas metodes, izmantojot SSH. Lielākajai daļai serveru un pat daudzu klientu jau ir SSH, un to var izmantot jūsu rsync dublējumkopijām. Mēs parādīsim procesu, lai iegūtu vienu Linux iekārtu rezerves vietai citā lokālajā tīklā. Process būtu tieši tāds pats, ja kāds no uzņēmējiem kaut kur nokļūst internetā, tikai ņemiet vērā, ka 22. ostā (vai jebkurai citai ostai, kurai ir SSH konfigurēta), būtu jānosūta uz jebkura tīkla aprīkojuma servera pusē.

Serverī (datorā, kas saņems dublējumkopijas) pārliecinieties, ka SSH un rsync ir instalēti.

# yum -y install ssh rsync

# sudo apt-get install ssh rsync

Izņemot serverī instalēto SSH un rsync, viss, kas patiešām ir jādara, ir iestatīt servera krātuves, kur vēlaties dublēt failus, un pārliecināties, ka SSH ir bloķēts. Pārliecinieties, vai lietotājam, ko plānojat lietot, ir sarežģīta parole, un arī ieteicams pārslēgt ostu, uz kuru SSH klausās (pēc noklusējuma ir 22).

Mēs izmantosim tādu pašu komandu, ko izmantojām rsync izmantošanai vietējā datorā, bet iekļaujam nepieciešamos papildinājumus rsync tuneļošanai caur SSH uz sava vietējā tīkla serveri. Lietotāja "geek", kas savieno ar "192.168.235.137" un izmanto tos pašus slēdžus kā iepriekš (-av -delete), darbosies šādi:

$ rsync -av –delete -e ssh /Directory1/ [email protected]:/Directory2/

Ja jums ir SSH klausīšanās citā ostā, nevis 22, jums vajadzētu norādīt porta numuru, piemēram, šajā piemērā, kur es izmantoju portu 12345:

$ rsync -av –delete -e 'ssh -p 12345' /Directory1/ [email protected]:/Directory2/

Image
Image

Kā jūs varat redzēt no iepriekš redzamā ekrāna, produkcija, kas tiek sniegta dublēšanas laikā tīklā, ir gandrīz tāda pati kā vietnes dublēšana, vienīgā lieta, kas mainās, ir komanda, kuru izmantojat. Atzīmējiet arī to, ka tas pieprasīja paroli.Tas ir autentificēt ar SSH. Jūs varat iestatīt RSA atslēgas, lai izlaistu šo procesu, tādējādi vienkāršojot rsync automatizāciju.

Automatizē rsync dublējumus

Cron var izmantot Linux, lai automatizētu komandu izpildi, piemēram, rsync. Izmantojot Cron, mēs varam, lai mūsu Linux sistēma darbotos ikdienas dublējumkopijas, taču bieži vien jūs vēlētos, lai viņi palaistu.

Lai rediģētu cron tabulas failu lietotājam, kuram esat pieteicies kā, palaidiet:

$ crontab -e

Lai rediģētu šo failu, jums ir jāzina ar vi. Ierakstiet "I", un pēc tam sāciet rediģēt cron tabulas failu.

Cron izmanto šādu sintaksi: stundas minūtes, dienas stundas, mēneša dienas, gada mēneša, nedēļas dienas, komandas.

Sākumā tas var būt nedaudz mulsinošs, tāpēc ļaujiet man pieminēt. Tālāk norādītā komanda palaist komandu rsync katru vakaru plkst. 10:00:

0 22 * * * rsync -av --delete /Directory1/ /Directory2/

Pirmais "0" norāda stundas minūti, un "22" norāda uz 10 PM. Tā kā mēs vēlamies, lai šī komanda palaistu katru dienu, mēs atstāsim atlikušos laukus ar zvaigznītēm un pēc tam ielīmēsim rsync komandu.

Kad esat beidzis konfigurēt Cron, nospiediet aizbēgt un pēc tam ierakstiet ": wq" (bez pēdiņām) un nospiediet enter. Tas saglabās izmaiņas vi.

Cron var iegūt daudz dziļāku nekā šis, taču, lai turpinātu to, tas būtu ārpus šīs apmācības darbības jomas. Lielākā daļa cilvēku vienkārši vēlēsies vienkāršu iknedēļas vai ikdienas rezerves kopiju, un tas, ko mēs esam parādījuši, to var viegli paveikt. Plašāku informāciju par Cron, lūdzu, skatiet vīriešu lapās.

Citas noderīgas funkcijas

Vēl viena lietderīga lieta, ko varat darīt, ir dublējumu ievietošana zip failā. Jums būs jānorāda vieta, kur vēlaties ievietot zip failu, un pēc tam rsync šo direktoriju uz jūsu rezerves direktoriju. Piemēram:

$ zip /ZippedFiles/archive.zip /Directory1/ && rsync -av --delete /ZippedFiles/ /Directory2/

Iepriekš minētā komanda ņem failus no Directory1, ievieto tos /ZippedFiles/archive.zip un pēc tam rsyncē šo direktoriju uz Directory2. Sākotnēji, jūs domājat, ka šī metode izrādīsies neefektīva lielām dublējumkopijām, ņemot vērā, ka zip fails mainīsies ikreiz, kad failā tiek veiktas vismazākās izmaiņas. Tomēr rsync pārsūta tikai mainītos datus, tādēļ, ja jūsu zip fails ir 10 GB, un pēc tam jūs pievienojat teksta failu katalogam1, rsync uzzina, ka tas ir viss, ko pievienojāt (pat ja tas ir zip), un pārnes tikai dažus kilobaitus no mainītajiem datiem.
Iepriekš minētā komanda ņem failus no Directory1, ievieto tos /ZippedFiles/archive.zip un pēc tam rsyncē šo direktoriju uz Directory2. Sākotnēji, jūs domājat, ka šī metode izrādīsies neefektīva lielām dublējumkopijām, ņemot vērā, ka zip fails mainīsies ikreiz, kad failā tiek veiktas vismazākās izmaiņas. Tomēr rsync pārsūta tikai mainītos datus, tādēļ, ja jūsu zip fails ir 10 GB, un pēc tam jūs pievienojat teksta failu katalogam1, rsync uzzina, ka tas ir viss, ko pievienojāt (pat ja tas ir zip), un pārnes tikai dažus kilobaitus no mainītajiem datiem.

Ir vairāki veidi, kā jūs varat šifrēt jūsu rsync dublējumus. Vienkāršākā metode ir instalēt šifrēšanu uz cietā diska (tas, uz kuru jūsu faili tiek dublēti). Vēl viens veids ir šifrēt savus failus pirms to nosūtīšanas uz attālo serveri (vai citu cieto disku, neatkarīgi no tā, kāds jums ir vajadzīgs, lai izveidotu dublējumkopiju). Mēs aplūkosim šīs metodes turpmākajos rakstos.

Neatkarīgi no izvēlētām iespējām un funkcijām rsync ir kļuvis par vienu no visefektīvākajiem un daudzpusīgākajiem rezerves rīkiem līdz šim, un pat vienkāršs rsync skripts var ietaupīt jūsu zaudēt datus.

Ieteicams: