Hva er unisont?
Unison -teknologien utviklet av Benjamin C Pierce under GPL -lisensen lar brukere synkronisere to enkeltfilforekomster på det samme systemet, men forskjellige disker eller to andre systemer.
Unison lar deg oppbevare en oppdatert og identisk versjon av den samme filen eller katalogen. Det kan brukes i en rekke sammenhenger, for eksempel SSH, og tillater sikker overføring av data mellom enheter eller kataloger.
Unison-verktøyet er på tvers av plattformer, slik at brukere kan synkronisere filer og kataloger mellom systemer som kjører de samme eller forskjellige operativsystemene. For eksempel kan du synkronisere filer fra et Linux -system til et BSD -system. På grunn av sikkerhetsfunksjonene synkroniserer unison -filer og kataloger og bruker eier- og tillatelsesrettigheter på begge systemene.
Unison -verktøyet er utviklet med sikkerhet i tankene og kan overleve feil der avbrudd skjer mellom synkroniseringspunkter. Hvis unison oppdager fil- og katalogkonflikter, rapporterer den de eksisterende konfliktene og lar brukerne velge hvilken versjon av filene som skal gjelde.
Unison kan jobbe med eller støtte-sakte nettverk, noe som gjør det til et veldig effektivt verktøy for båndbreddebruk. Det synkroniserer bare deler og kataloger som har endret seg, og forhindrer dermed tung belastning og oppdatering av synkroniseringsprosessen veldig enkelt og raskt.
Til tross for sin primære brukskontekst, er unisont et kraftig verktøy som kan endres for å skape et bredt spekter av brukssaker.
Denne opplæringen vil diskutere hvordan du installerer og konfigurerer Unison File Synchronization System på Debian 10.
Hvordan installere unisont på Debian 10
Unison er et populært verktøy; På grunn av det er det tilgjengelig i offisielle depoter av store Linux -distribusjoner.
For å installere kommandolinjeversjonen av Unison på Debian, begynn å oppdatere systemet:
sudo apt-get update && sudo apt-get oppgradering
Deretter bruker du det enkle passende å kommandere for å installere verktøyet.
sudo apt -get installere unisont -y
Hvis du har et skrivebordsmiljø installert på systemet ditt og foretrekker en GUI-versjon av verktøyet, kan du installere Unison-GTK ved å bruke kommandoen:
sudo apt-get installere unisont-gtk
MERK: Forsikre deg om at du installerer unisont på begge versjonene av systemene du ønsker å synkronisere filer mellom dem. For kompatibilitet og for å minimere sjansene for feil, er det bedre å ha samme versjon av unisont i begge systemene.
Hvordan synkronisere filer med unisont
Unison gir oss måter å synkronisere filer og kataloger mellom lokale maskiner og eksterne maskiner ved hjelp av direkte socket -tilkoblinger og SSH. Siden vi synkroniseres mellom to Debian -servere, vil vi hoppe over lokal maskinsynkronisering.
Unison Remote and Remote Sync via SSH
For å synkronisere filer og kataloger mellom eksterne maskiner, må du ha enhet installert i begge systemene, ha SSH -tilgang til både systemene og IP -adressene deres.
Du kan også bruke din lokale maskin som en server og den eksterne enheten som den andre serveren.
Det første trinnet er å opprette en privat og offentlig nøkkel på den eksterne server1.
SSH -KeyGen -t RSA
Generere offentlig/privat RSA -nøkkelpar.
Skriv inn filen for å lagre tasten (/Hjem/CSALEM/.ssh/id_rsa):
Opprettet katalog '/home/csalem/.ssh '.
Skriv inn passfrase (tom for ingen passfrase):
Skriv inn den samme passfrasen igjen:
Din identifikasjon er lagret i/Home/Csalem/.SSH/ID_RSA.
Din offentlige nøkkel er lagret i/Hjem/CSALEM/.SSH/ID_RSA.pub.
Det viktigste fingeravtrykket er:
Sha256: 4p5yuebea5lrinzqpgwhrvhss0tnliil70a0q2mfcs8 csalem@debian-pc
Nøkkens tilfeldige kunstbilde er:
+---[RSA 2048]----+
|+/@=… |
| =*O == |
| ++ OE . |
|+*o ... |
| o+= . S |
|++. o . |
| oo ... o |
|.o . = . |
| ... o o |
+----[SHA256]-----+
Hopp raskt over nøkkelgenerasjonsprosessen og lagre filen. Ikke legg til en passfrase fordi den kan hindre uovervåket synkronisering mellom serverne.
Deretter kopierer du nøkkelen fra Server1 til Server2 ved å bruke kommandoen:
SSH-Copy-ID 192.168.0.201
Nå som du har SSH -oppsett på begge systemene, kan du begynne å synkronisere filer og kataloger.
La oss teste bruken av unisont på begge serverne ved å opprette katalogen vi vil synkronisere på Server1:
mkdir -p /dir1
Lag en katalog på server2 som ovenfor
mkdir -p /dir2
Som nevnt respekterer Unison brukertillatelser. Derfor er det best å endre tillatelser og eierskap i begge kataloger for å sikre at begge katalogene har lest og skriver privilegier.
Deretter legger du til alle dataene du ønsker å synkronisere mellom serverne i DIR1. Legg for eksempel til noen få zip -filer.
sudo mv ~/dokumenter.Zip /Dir1
Når vi har filene, vil vi synkronisere i riktig katalog, kjøre Unison -kommando for å synkronisere fra Server One som:
Unison/Dir1 Ssh: // 192.168.0.201 // Dir2
Ved den første unisont -lanseringen vil du motta en advarsel om at synkroniseringsprosessen kan ta en stund. Hvis du har store filer i katalogene, kan dette ta en stund, men siden vi bare bruker det til testformål, bør det være relativt raskt.
Trykk ENTER for å starte synkroniseringsprosessen. Når synkroniseringsprosessen er fullført, gå til Server2, naviger til DIR2 og liste opp innholdet i katalogen som:
CD /Dir2 && ls -la
-RW-R-R-- 1 Root Root 436 5 12:57 Dokumenter.glidelås
Endre unisont -konfigurasjon
I de fleste tilfeller ønsker vi ikke å synkronisere filer mellom disse serverne, da prosessen er repeterende og ineffektiv. Vi kan redigere unisont -konfigurasjonsfilen for å tillate automatiske synkroniseringsfiler.
Bruk kommandoen nedenfor for å redigere standardkonfigurasjonsfilen:
sudo vi ~/.unisont/standard.PRF
I filen, legg til følgende linjer:
auto = sant
batch = sant
Ovennevnte linjer deaktiverer spørsmål når du synkroniserer filer, automatiserer prosessen.
Sette opp unison cronjob
En sikker ting er at programmerere er veldig motvillige mot å gjøre ting manuelt, spesielt når det er mulig å automatisere, noe som er tilfelle her. Vi kan sette opp en cronjob for unisont å utføre synkronisering automatisk.
I Server1, lag et enkelt bash -skript for å kjøre unison -kommando som:
sudo touch/usr/bin/unisoncron && sudo vi/usr/bin/unisoncron
I filen, start med en shebang og legg til Unison Sync -kommandoen:
#!/bin/bash/
Unison/Dir1 Ssh: // 192.168.0.201 // Dir2
Som vanlig, gjør skriptet til å utføre tillatelser:
sudo chmod 755/usr/bin/unisoncron
Rediger nå cronjob -filen din med crontab:
sudo crontab -e
Hvis dette er din første gang redigering av crontab-jeg håper det ikke er valgt redaktøren din og skriv inn følgende linje for å synkronisere med unisont hver 1 time:
*/60 * * * */usr/bin/unisoncron &>/dev/null
Du kan også sette opp crontab for å løpe på bestemte tider av døgnet. Du trenger heller ikke å bruke et skript og kan bruke en rå kommando i crontab.
Konklusjon
Denne opplæringen viste deg hvordan du installerer og konfigurerer unisont på et Debian -system for synkronisering av filer og kataloger.
Selv om denne raske guiden kan hjelpe deg med å komme i gang, kan du lære mer ved å bruke Unison Man -sider (manuelle sider) eller den offisielle dokumentasjonen ved å bruke ressursen som er gitt nedenfor: