Jeste li ikada brinuli o gubitku podataka ili ste se umorili od izvođenja ručnih sigurnosnih kopija dnevno ili tjedno? Koristiti rsync
naredbu i automatski sinkronizirajte svoje lokalne datoteke s udaljenim poslužiteljem koliko god često želite, bez ručne intervencije. Imajte na umu da ovaj vodič zahtijeva pristup udaljenom Linux poslužitelju (npr. AWS), a napisan je pod Ubuntu 20.04 iako bi svaka distribucija Linuxa trebala raditi dobro.
Instalirajte rsync
Prije svega provjeri je li ili ne rsync
je instaliran. Na vašem lokalnom računalu i web poslužitelju pokrenite ovu naredbu:
rsync --verzija
Ako zauzvrat dobijete trenutnu verziju rsync, onda ste spremni za sljedeći odjeljak. Inače, ako primite a naredba nije pronađena greška, možete instalirati rsync
s ovom naredbom:
sudo apt-get -y instalirati rsync
Generirajte SSH ključ
Koristit ćemo a SSH ključ za provjeru autentičnosti veze između našeg lokalnog računala i udaljenog poslužitelja. Za generiranje novog SSH ključa na vašem lokalnom računalu unutar terminala pokrenite naredbu:
Trebate daljinski pristupiti svom Linux računalu ili poslužitelju? Evo kako postaviti i konfigurirati SSH na Linuxu, Windowsu i mobilnom uređaju.
ssh-keygen -t rsa -b 4096 -f ~/.ssh/rsync.key
Kada se od vas zatraži lozinka, ostavite prazno i dvaput pritisnite tipku Enter. To će generirati dvije nove datoteke unutar vašeg ~/.ssh/
imenik imenik rsync.ključ
koji je privatni ključ, i rsync.key.pub
, javni ključ.
Postavite udaljeni poslužitelj
Iako nije potrebno, za ovaj vodič izradit ćemo a novi korisnik na udaljenom poslužitelju za rsync veze i za pohranu svih datoteka sigurnosne kopije. Prijavite se na udaljeni poslužitelj putem SSH-a i pokrenite ovu naredbu:
sudo useradd -m rsync
Gornji primjer koristi korisničko ime rsync, ali ga možete promijeniti u što god želite. The -m
opcija jednostavno govori Linuxu da stvori početni direktorij za našeg novog korisnika.
Kako biste omogućili autentifikaciju vašeg lokalnog računala, javni SSH ključ koji je generiran u prethodnom odjeljku treba kopirati na udaljeni poslužitelj. Otvori /~.ssh/rsync.key.pub
datoteka u a uređivač teksta i vidjet ćete jednu veliku liniju koja izgleda otprilike.
ssh-rsa korisnik@host
Ova duga linija je javni SSH ključ. Kopirajte ga u međuspremnik i unutar svog udaljenog poslužitelja pokrenite ove naredbe:
sudo su rsync
mkdir -m 0700 $HOME/.ssh
echo "ssh-rsa AAAAB... korisnik@host" > $HOME/.ssh/authorized_keys
chmod 0644 $HOME/.ssh/authorized_keys
U drugoj posljednjoj naredbi zamijenite tekst između navodnika s tim dugim javnim SSH ključem. To je to, vaše lokalno računalo će se sada moći autentificirati s vašim udaljenim poslužiteljem.
Konfigurirajte ssh konfiguracijsku datoteku
Radi jednostavnosti, dodajte unos u ~/.ssh/config
datoteku na vašem lokalnom računalu za jednostavno povezivanje s udaljenim poslužiteljem. Otvorite datoteku na svom lokalnom računalu pomoću naredbe.
nano $HOME/.ssh/config
Unutar datoteke dodajte unos za udaljeni poslužitelj kao što je:
host backup_server
ime hosta 192.168.0.24
korisnik rsync
Datoteka identiteta ~/.ssh/rsync
Promijenite ime hosta u IP adresu vašeg udaljenog poslužitelja, a ako ste koristili korisničko ime osim "rsync", promijenite i to. Možete koristiti sve što želite za domaćina, ali za ovaj primjer korišten je "backup_server". Spremite i zatvorite datoteku pritiskom na Ctrl+X nakon čega slijede tipke "Y" i Enter.
Testirajte svoju SSH vezu s udaljenim poslužiteljem pomoću naredbe.
ssh backup_server
Pod pretpostavkom da je sve ispravno postavljeno, sada biste trebali biti prijavljeni na svoj udaljeni poslužitelj putem SSH-a. Zatvorite vezu s naredbom.
Izlaz
Sinkronizirajte svoje datoteke
Sada testirajte rsync
funkcionalnost, i na primjer, za sinkronizaciju imenika dokumenata na vašem lokalnom računalu pokrenite naredbu:
rsync -avz --progress ~/Documents/ backup_server:~/Documents
Prva pojava od ~/Dokumenti/
određuje lokalnu datoteku ili direktorij za sinkronizaciju, backup_server
odgovara unosu dodanom u ~/.ssh/config
datoteku i završetak :~/Dokumenti
jednostavno specificira da se sve učita u /Documents direktorij udaljenog poslužitelja u odnosu na početni direktorij.
Prijavite se na udaljeni poslužitelj i trebali biste vidjeti novi direktorij dokumenata koji je sinkroniziran s onim na vašem lokalnom računalu. Svaki put kada pokrenete gornju naredbu, bit će učitane samo datoteke koje su izmijenjene od posljednjeg puta, tako da nećete stalno učitavati cijeli sadržaj direktorija.
Automatizirajte putem Crontaba
Sada kada je sve testirano i radi ispravno, možemo jednostavno automatizirati cijeli proces dodavanjem crontab posla na naše lokalno računalo. Za automatsku sinkronizaciju vaše lokalne mape s udaljenim poslužiteljem svakih 15 minuta, unutar terminala pokrenite naredbu.
(crontab -l; echo "*/15 * * * * rsync -avz --progress ~/Documents/ backup_server:~/Documents > /dev/null 2>&1";) | crontab
Možda ćete dobiti poruku "nema crontab za korisnika", a možete je jednostavno zanemariti. Promijeni Dokumenti
direktorij na ono što želite sigurnosno kopirati, ali svakako ostavite zadnju kosu crtu za direktorije inače neće ispravno sigurnosno kopirati.
Provjerite je li posao crontab uspješno dodan naredbom.
crontab -l
Ako vidite crontab posao koji je upravo dodan, onda je sve na svom mjestu. Pričekajte 15 minuta, provjerite svoj udaljeni poslužitelj i sve potrebne datoteke trebaju biti tamo. Počevši od sada, sve promjene napravljene u vašim datotekama automatski će se učitavati na udaljeni poslužitelj svakih 15 minuta.
Preuzmite s udaljenog poslužitelja
Također možete koristiti rsync
da preuzmete datoteke s udaljenog poslužitelja i sinkronizirate ih s vašim lokalnim računalom. Koristeći gornji primjer direktorija /Documents, unutar terminala pokrenite naredbu:
rsync -chavzP backup_server:~/Documents/ ~/Documents
The ~./Dokumenti
direktorij na vašem lokalnom računalu sada bi trebao biti zrcalna slika udaljenog poslužitelja.
Uključi i isključi uzorke
Ako ikada trebate sinkronizirati samo datoteke koje odgovaraju određenom uzorku, kao što je kraj s .html
možete koristiti --uključiti
uzorak. Unutar terminala pokrenite naredbu.
rsync -avz --include "*.html" --progress ~/mysite/ backup_server:~/public_html
Provjerite udaljeni poslužitelj i vidjet ćete da su samo datoteke s nastavkom .html iz lokalnog /mysite/ direktorija učitane u /public_html/ udaljeni direktorij. Slično, također možete sinkronizirati sve osim određenih datoteka s --isključiti
opcija. Na primjer, sljedeća naredba sinkronizirat će sve datoteke osim onih s a .txt
proširenje.
rsync -avz --isključi "*.txt" --progres ~/mysite/ backup_server:~/public_html
Sinkroniziraj dva lokalna imenika
Ako ikad bude potrebno, možete sinkronizirati dva lokalna imenika s naredbom.
rsync -zvr ~/izvor/direktorij ~/odredište/direktorij
Ova naredba radi potpuno isto kao i kod sinkronizacije na udaljeni poslužitelj, jedina razlika je u tome što se radi o dva lokalna direktorija.
Opusti se
Sada možete odahnuti znajući da su vaše šanse za gubitak podataka sada znatno niže. U ovom članku naučili ste što rsync
je, kako generirati i instalirati SSH ključ, definirati poslužitelj unutar ~./.ssh/config
datoteku, sinkronizirati lokalni i udaljeni direktorij i automatizirati cijeli proces putem crontaba. Ubuduće, sve potrebne datoteke uvijek će se sinkronizirati s vašim udaljenim poslužiteljem sa samo 15 minuta kašnjenja.
Trebate klonirati svoj Linux tvrdi disk ili particiju? Koristite jedan od ovih alata za kloniranje pogona za kloniranje vašeg Linux diska.
- Linux
- Sigurnosna kopija podataka
- Linux
- Sigurnosna kopija u oblaku
- Kućna mreža
Pretplatite se na naše obavijesti
Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!
Još jedan korak…!
Molimo potvrdite svoju adresu e-pošte u e-poruci koju smo vam upravo poslali.