Ar kada nors nerimaujate dėl duomenų praradimo arba pavargote nuo rankinio atsarginių kopijų kūrimo kasdien ar kas savaitę? Naudoti rsync
komandą ir automatiškai sinchronizuokite vietinius failus su nuotoliniu serveriu tiek dažnai, kiek norite, be rankinio įsikišimo. Atkreipkite dėmesį, kad šiam vadovui reikalinga prieiga prie nuotolinio Linux serverio (pvz., AWS) ir yra parašyta Ubuntu 20.04, nors bet koks Linux platinimas turėtų veikti gerai.
Įdiekite rsync
Prieš ką nors patikrinkite, ar ne rsync
yra įdiegta. Vietiniame kompiuteryje ir žiniatinklio serveryje paleiskite šią komandą:
rsync -- versija
Jei mainais gausite dabartinę rsync versiją, būsite pasiruošę kitam skyriui. Priešingu atveju, jei gausite a komanda nerasta klaida, galite įdiegti rsync
su šia komanda:
sudo apt-get -y įdiegti rsync
Sukurkite SSH raktą
Mes naudosime a SSH raktas autentifikuoti ryšį tarp vietinio kompiuterio ir nuotolinio serverio. Norėdami sugeneruoti naują SSH raktą vietiniame kompiuteryje terminale, paleiskite komandą:
Reikia nuotoliniu būdu pasiekti „Linux“ kompiuterį ar serverį? Štai kaip nustatyti ir konfigūruoti SSH „Linux“, „Windows“ ir mobiliuosiuose įrenginiuose.
ssh-keygen -t rsa -b 4096 -f ~/.ssh/rsync.key
Kai būsite paraginti įvesti slaptažodį, palikite jį tuščią ir du kartus paspauskite klavišą Enter. Taip jūsų viduje bus sukurti du nauji failai ~/.ssh/
pavadintas katalogas rsync.key
kuris yra privatus raktas, ir rsync.key.pub
, viešasis raktas.
Nustatykite nuotolinį serverį
Nors ir nebūtina, šiam vadovui sukursime a naujas vartotojas nuotoliniame serveryje rsync ryšiams ir visų atsarginių failų saugojimui. Prisijunkite prie nuotolinio serverio per SSH ir paleiskite šią komandą:
sudo useradd -m rsync
Aukščiau pateiktame pavyzdyje naudojamas vartotojo vardas rsync, bet galite jį pakeisti į bet ką, ko norite. The -m
parinktis tiesiog liepia Linux sukurti namų katalogą mūsų naujam vartotojui.
Kad vietinis kompiuteris galėtų autentifikuoti, viešąjį SSH raktą, kuris buvo sugeneruotas ankstesniame skyriuje, reikia nukopijuoti į nuotolinį serverį. Atidaryk /~.ssh/rsync.key.pub
failą a teksto redaktorius ir pamatysite vieną didelę liniją, kuri atrodo panašiai.
ssh-rsa vartotojas@host
Ši ilga eilutė yra viešasis SSH raktas. Nukopijuokite jį į mainų sritį ir nuotoliniame serveryje paleiskite šias komandas:
sudo su rsync
mkdir -m 0700 $HOME/.ssh
echo "ssh-rsa AAAAB... user@host" > $HOME/.ssh/authorized_keys
chmod 0644 $HOME/.ssh/authorized_keys
Antroje paskutinėje komandoje pakeiskite tekstą tarp kabučių ta ilga viešąja SSH rakto eilute. Viskas, jūsų vietinis kompiuteris dabar galės autentifikuoti savo nuotolinį serverį.
Konfigūruoti ssh konfigūracijos failą
Paprastumo dėlei pridėkite įrašą prie ~/.ssh/config
failą vietiniame kompiuteryje, kad galėtumėte lengvai prisijungti prie nuotolinio serverio. Atidarykite failą vietiniame kompiuteryje naudodami komandą.
nano $HOME/.ssh/config
Failo viduje pridėkite nuotolinio serverio įrašą, pavyzdžiui:
pagrindinio kompiuterio atsarginis_serveris
pagrindinio kompiuterio vardas 192.168.0.24
vartotojo rsync
IdentityFile ~/.ssh/rsync
Pakeiskite pagrindinio kompiuterio pavadinimą į nuotolinio serverio IP adresą ir, jei naudojote kitą vartotojo vardą, o ne „rsync“, taip pat pakeiskite jį. Prieglobai galite naudoti bet ką, bet šiame pavyzdyje buvo naudojamas „atsarginis_serveris“. Išsaugokite ir uždarykite failą paspausdami Ctrl+X, po to klavišus "Y" ir Enter.
Išbandykite SSH ryšį su nuotoliniu serveriu naudodami komandą.
ssh atsarginis_serveris
Darant prielaidą, kad viskas nustatyta teisingai, dabar turėtumėte būti prisijungę prie nuotolinio serverio per SSH. Uždarykite ryšį naudodami komandą.
išeiti
Sinchronizuokite failus
Dabar išbandykite rsync
funkcionalumą ir, pavyzdžiui, norėdami sinchronizuoti savo dokumentų katalogą vietiniame kompiuteryje, paleiskite komandą:
rsync -avz --progress ~/Documents/ backup_server:~/Documents
Pirmasis pasireiškimas ~/Dokumentai/
nurodo vietinį failą arba katalogą, kurį reikia sinchronizuoti, atsarginis_serveris
atitinka įrašą, pridėtą prie ~/.ssh/config
failą ir pabaigą :~/Dokumentai
tiesiog nurodo viską įkelti į nuotolinio serverio /Documents katalogą, palyginti su namų katalogu.
Prisijunkite prie nuotolinio serverio ir turėtumėte pamatyti naują dokumentų katalogą, kuris yra sinchronizuojamas su jūsų vietinio kompiuterio katalogu. Kiekvieną kartą paleidus pirmiau nurodytą komandą, bus įkeliami tik tie failai, kurie buvo modifikuoti nuo paskutinio karto, todėl jūs nuolat neįkeliate viso katalogo turinio.
Automatizuoti per Crontab
Dabar, kai viskas patikrinta ir veikia tinkamai, galime nesunkiai automatizuoti visą procesą, įtraukdami crontab užduotį į vietinį kompiuterį. Norėdami automatiškai sinchronizuoti vietinį aplanką su nuotoliniu serveriu kas 15 minučių, terminale paleiskite komandą.
(crontab -l; echo "*/15 * * * * rsync -avz --progress ~/Documents/ backup_server:~/Documents > /dev/null 2>&1";) | crontab
Galite gauti pranešimą „no crontab vartotojui“ ir galite tiesiog jo nepaisyti. Pakeisti Dokumentai
katalogą į bet kurį, kurio atsarginę kopiją norite sukurti, tačiau palikite pasvirąjį brūkšnį katalogams, kitaip jie nebus tinkamai sukurti atsarginės kopijos.
Patikrinkite, ar crontab užduotis buvo sėkmingai pridėta naudojant komandą.
crontab -l
Jei matote ką tik pridėtą crontab užduotį, viskas yra vietoje. Palaukite 15 minučių, patikrinkite savo nuotolinį serverį ir visi reikalingi failai turėtų būti ten. Nuo šiol visi failų pakeitimai bus automatiškai įkeliami į nuotolinį serverį kas 15 minučių.
Atsisiųskite iš nuotolinio serverio
Taip pat galite naudoti rsync
Norėdami atsisiųsti failus iš nuotolinio serverio ir sinchronizuoti juos su vietiniu kompiuteriu. Naudodami aukščiau pateiktą / Documents katalogo pavyzdį, terminale paleiskite komandą:
rsync -chavzP atsarginės kopijos_serveris:~/Documents/ ~/Documents
The ~./Dokumentai
jūsų vietinio kompiuterio katalogas dabar turėtų būti veidrodinis nuotolinio serverio vaizdas.
Įtraukti ir neįtraukti šablonų
Jei kada nors reikės sinchronizuoti tik tuos failus, kurie atitinka tam tikrą šabloną, pvz., baigiasi .html
galite naudoti --įtraukti
modelis. Terminale paleiskite komandą.
rsync -avz --include "*.html" --progress ~/mysite/ backup_server:~/public_html
Patikrinkite nuotolinį serverį ir pamatysite tik failus su .html plėtiniu iš vietinio /mysite/ katalogo, kurie buvo įkelti į /public_html/ nuotolinį katalogą. Taip pat galite sinchronizuoti viską, išskyrus tam tikrus failus, su --Neįtraukti
variantas. Pavyzdžiui, ši komanda sinchronizuos visus failus, išskyrus tuos, kuriuose yra a .txt
pratęsimas.
rsync -avz --exclude "*.txt" --progress ~/mysite/ backup_server:~/public_html
Sinchronizuoti du vietinius katalogus
Jei kada reikia, su komanda taip pat galite sinchronizuoti du vietinius katalogus.
rsync -zvr ~/šaltinis/katalogas ~/paskirties vieta/katalogas
Ši komanda veikia lygiai taip pat, kaip sinchronizuojant su nuotoliniu serveriu, vienintelis skirtumas yra tai, kad tai du vietiniai katalogai.
Atsipalaiduokite
Dabar galite lengviau atsikvėpti, žinodami, kad jūsų duomenų praradimo tikimybė yra žymiai mažesnė. Šiame straipsnyje jūs sužinojote, ką rsync
yra, kaip sukurti ir įdiegti SSH raktą, apibrėžti serverį ~./.ssh/config
failą, sinchronizuokite vietinį ir nuotolinį katalogą ir automatizuokite visą procesą naudodami crontab. Ateityje visi reikalingi failai visada bus sinchronizuojami su nuotoliniu serveriu tik su 15 minučių vėlavimu.
Reikia klonuoti „Linux“ standųjį diską arba skaidinį? Norėdami klonuoti „Linux“ diską, naudokite vieną iš šių disko klonavimo įrankių.
- Linux
- Duomenų atsarginė kopija
- Linux
- Atsarginė kopija debesyje
- Namų tinklas
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!
Dar vienas žingsnis…!
Patvirtinkite savo el. pašto adresą el. laiške, kurį ką tik jums atsiuntėme.