Ți-ai făcut vreodată griji că îți pierzi datele sau te-ai săturat să faci copii de rezervă manuale zilnic sau săptămânal? Folosește rsync
comandă și sincronizează automat fișierele locale cu un server la distanță ori de câte ori se dorește, fără intervenție manuală. Vă rugăm să rețineți că acest ghid necesită acces la un server Linux de la distanță (de ex. AWS) și este scris sub Ubuntu 20.04, deși orice distribuție Linux ar trebui să funcționeze bine.
Instalați rsync
Înainte de orice, verificați dacă sau nu rsync
este instalat. Atât pe computerul local, cât și pe serverul web, rulați această comandă:
rsync --versiune
Dacă primiți versiunea actuală de rsync în schimb, atunci sunteți gata pentru următoarea secțiune. În caz contrar, dacă primești un comanda nu a fost găsită eroare, puteți instala rsync
cu aceasta comanda:
sudo apt-get -y install rsync
Generați cheia SSH
Vom folosi a cheie SSH pentru a autentifica conexiunea dintre PC-ul nostru local și serverul de la distanță. Pentru a genera o nouă cheie SSH pe computerul local din terminal, executați comanda:
Trebuie să vă accesați computerul sau serverul Linux de la distanță? Iată cum să configurați și să configurați SSH pe Linux, Windows și mobil.
ssh-keygen -t rsa -b 4096 -f ~/.ssh/rsync.key
Când vi se solicită o parolă, lăsați-o necompletată și apăsați tasta Enter de două ori. Acest lucru va genera două fișiere noi în interiorul dvs ~/.ssh/
director numit rsync.key
care este cheia privată și rsync.key.pub
, cheia publică.
Configurați serverul de la distanță
Deși nu este necesar, pentru acest ghid vom crea un utilizator nou pe serverul de la distanță pentru conexiuni rsync și pentru a stoca toate fișierele de rezervă. Conectați-vă la serverul de la distanță prin SSH și rulați această comandă:
sudo useradd -m rsync
Exemplul de mai sus folosește numele de utilizator rsync, dar îl puteți schimba cu orice doriți. The -m
opțiunea îi spune pur și simplu lui Linux să creeze un director principal pentru noul nostru utilizator.
Pentru a permite computerului dumneavoastră local să se autentifice, cheia publică SSH care a fost generată în secțiunea anterioară trebuie să fie copiată pe serverul de la distanță. Deschide /~.ssh/rsync.key.pub
dosar într-un editor de text și veți vedea o linie mare care arată ceva asemănător.
ssh-rsa utilizator@gazdă
Această linie lungă este cheia publică SSH. Copiați-l în clipboard și, pe serverul dvs. de la distanță, executați aceste comenzi:
sudo su rsync
mkdir -m 0700 $HOME/.ssh
ecou "ssh-rsa AAAAB... utilizator@gazdă" > $HOME/.ssh/authorized_keys
chmod 0644 $HOME/.ssh/authorized_keys
În ultima comandă, înlocuiți textul dintre ghilimele cu acea linie lungă de cheie SSH publică. Gata, computerul local se va putea autentifica acum cu serverul de la distanță.
Configurați fișierul de configurare ssh
De dragul simplității, adăugați o intrare la ~/.ssh/config
fișier pe computerul local pentru a vă conecta cu ușurință la serverul de la distanță. Deschideți fișierul pe computerul local cu comanda.
nano $HOME/.ssh/config
În cadrul fișierului adăugați o intrare pentru serverul de la distanță, cum ar fi:
gazdă backup_server
numele gazdă 192.168.0.24
rsync utilizator
IdentityFile ~/.ssh/rsync
Schimbați numele de gazdă la adresa IP a serverului dvs. la distanță și, dacă ați folosit un alt nume de utilizator decât „rsync”, schimbați-l și pe acesta. Puteți folosi orice doriți pentru gazdă, dar pentru acest exemplu a fost folosit „backup_server”. Salvați și închideți fișierul apăsând Ctrl+X urmat de tastele „Y” și Enter.
Testați-vă conexiunea SSH la serverul de la distanță cu comanda.
ssh backup_server
Presupunând că totul este configurat corect, acum ar trebui să fiți conectat la serverul dvs. la distanță prin SSH. Închideți conexiunea cu comanda.
Ieșire
Sincronizați-vă fișierele
Acum testați rsync
funcționalitatea și, de exemplu, pentru a sincroniza directorul Documente pe computerul local, executați comanda:
rsync -avz --progress ~/Documents/ backup_server:~/Documents
Prima apariție a ~/Documente/
specifică fișierul sau directorul local de sincronizat, backup_server
corespunde cu intrarea adăugată la ~/.ssh/config
fișier și finalul :~/Documente
pur și simplu specifică să încărcați totul în directorul /Documents al serverului la distanță în raport cu directorul principal.
Conectați-vă la serverul de la distanță și ar trebui să vedeți un nou director de documente care este sincronizat cu cel al computerului dvs. local. De fiecare dată când rulați comanda de mai sus, vor fi încărcate numai fișierele care au fost modificate de ultima dată, astfel încât nu încărcați în mod constant întregul conținut al directorului.
Automatizați prin Crontab
Acum că totul este testat și funcționează corect, putem automatiza cu ușurință întregul proces adăugând o lucrare crontab pe computerul nostru local. Pentru a sincroniza automat folderul local cu serverul la distanță la fiecare 15 minute, în terminal rulați comanda.
(crontab -l; echo "*/15 * * * * rsync -avz --progress ~/Documents/ backup_server:~/Documents > /dev/null 2>&1";) | crontab
Este posibil să primiți un mesaj „fără crontab pentru utilizator” și îl puteți ignora. Schimba Documente
directorul în orice doriți să faceți backup, dar asigurați-vă că lăsați o bară oblică pentru directoare, altfel acestea nu vor face backup corect.
Verificați pentru a vă asigura că jobul crontab a fost adăugat cu succes cu comanda.
crontab -l
Dacă vedeți jobul crontab care tocmai a fost adăugat, atunci totul este la locul său. Așteptați 15 minute, verificați serverul la distanță și toate fișierele necesare ar trebui să fie acolo. Începând de acum, toate modificările aduse fișierelor dvs. vor fi încărcate automat pe serverul de la distanță la fiecare 15 minute.
Descărcați de pe serverul de la distanță
De asemenea, puteți utiliza rsync
pentru a descărca fișiere de pe serverul de la distanță și a le sincroniza cu computerul local. Folosind exemplul de director /Documente de mai sus, în terminal rulați comanda:
rsync -chavzP backup_server:~/Documents/ ~/Documents
The ~./Documente
directorul de pe computerul local ar trebui să fie acum o imagine în oglindă a serverului la distanță.
Includeți și excludeți modele
Dacă vreodată trebuie să sincronizați numai fișierele care se potrivesc cu un anumit model, cum ar fi terminați cu .html
poți folosi --include
model. În terminal, rulați comanda.
rsync -avz --include „*.html” --progress ~/mysite/ backup_server:~/public_html
Verificați serverul la distanță și veți vedea numai fișierele cu extensia .html din directorul local /mysite/ au fost încărcate în directorul /public_html/ la distanță. În mod similar, puteți, de asemenea, sincroniza totul cu excepția anumitor fișiere --exclude
opțiune. De exemplu, următoarea comandă va sincroniza toate fișierele, cu excepția celor cu a .txt
extensie.
rsync -avz --exclude „*.txt” --progress ~/mysite/ backup_server:~/public_html
Sincronizați două directoare locale
Dacă este nevoie vreodată, puteți, de asemenea, să sincronizați două directoare locale cu comanda.
rsync -zvr ~/sursă/director ~/destinație/director
Această comandă funcționează exact la fel ca atunci când se sincronizează cu un server la distanță, singura diferență fiind că sunt două directoare locale.
Odihnește-te
Acum puteți respira ușurat știind că șansele dvs. de pierdere a datelor sunt acum substanțial mai mici. În acest articol ați învățat ce rsync
este, cum să generați și să instalați o cheie SSH, să definiți un server în cadrul ~./.ssh/config
fișier, sincronizați un director local și la distanță și automatizați întregul proces prin crontab. În continuare, toate fișierele necesare vor fi întotdeauna sincronizate cu serverul dvs. de la distanță cu o întârziere de numai 15 minute.
Trebuie să-ți clonezi unitatea hard disk sau partiția Linux? Utilizați unul dintre aceste instrumente de clonare a unităților pentru a vă clona discul Linux.
- Linux
- Copia de rezerva a datelor
- Linux
- Backup în cloud
- Rețeaua de domiciliu
Aboneaza-te la newsletter-ul nostru
Alăturați-vă buletinului nostru informativ pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!
Încă un pas…!
Vă rugăm să confirmați adresa dvs. de e-mail în e-mailul pe care tocmai vi l-am trimis.