Hvad er Unison?
Unison-teknologien udviklet af Benjamin C Pierce under GPL-licensen giver brugerne mulighed for at synkronisere to enkeltfilforekomster på det samme system, men forskellige diske eller to andre systemer.
Unison giver dig mulighed for at opbevare en opdateret og identisk version af den samme fil eller bibliotek. Det kan bruges i en lang række sammenhænge, såsom SSH, der muliggør sikker overførsel af data mellem enheder eller kataloger.
Unison-værktøjet er på tværs af platforme, så brugerne kan synkronisere filer og mapper mellem systemer, der kører det samme eller forskellige operativsystemer. For eksempel kan du synkronisere filer fra et Linux-system til et BSD-system. På grund af dets sikkerhedsfunktioner synkroniserer Unison filer og kataloger og anvender ejerskabs- og tilladelsesrettigheder på begge systemer.
Unison-værktøjet er udviklet med tanke på sikkerhed og kan overleve fejl, hvor der opstår afbrydelser mellem synkroniseringspunkter. Hvis Unison registrerer fil- og bibliotekonflikter, rapporterer det de eksisterende konflikter og giver brugerne mulighed for at vælge, hvilken version af filerne der skal anvendes.
Unison kan arbejde med-eller understøtter langsomme netværk, hvilket gør det til et meget effektivt værktøj til brug af båndbredde. Det synkroniserer kun dele og mapper, der er ændret, hvilket forhindrer tung belastning og opdaterer synkroniseringsprocessen meget let og hurtigt.
På trods af sin primære anvendelseskontekst er Unison et kraftfuldt værktøj, der kan ændres for at skabe en lang række brugssager.
Denne vejledning diskuterer, hvordan du installerer og opsætter Unison File Synchronization System på Debian 10.
Sådan installeres Unison på Debian 10
Unison er et populært værktøj; på grund af det er den tilgængelig i officielle opbevaringssteder for større Linux-distributioner.
For at installere kommandolinieversionen af Unison på Debian skal du begynde at opdatere systemet:
sudo apt-get opdatering && sudo apt-get upgradeBrug derefter den enkle apt to kommando til at installere værktøjet.
sudo apt-get install unison -yHvis du har et skrivebordsmiljø installeret på dit system og foretrækker en GUI-version af værktøjet, skal du installere unison-gtk ved hjælp af kommandoen:
sudo apt-get install unison-gtkBEMÆRK: Sørg for, at du installerer Unison på begge versioner af de systemer, du vil synkronisere filer mellem dem. For kompatibilitet og for at minimere chancerne for fejl er det bedre at have den samme version af Unison i begge systemer.
Sådan synkroniseres filer med Unison
Unison giver os måder til at synkronisere filer og mapper mellem lokale maskiner og eksterne maskiner ved hjælp af direkte stikforbindelser og SSH. Da vi synkroniserer mellem to Debian-servere, springer vi over lokal maskinsynkronisering.
Unison Remote og Remote Sync via SSH
For at synkronisere filer og mapper mellem eksterne maskiner skal du have Unison installeret i begge systemer, have SSH-adgang til både systemerne og deres IP-adresser.
Du kan også bruge din lokale maskine som en server og fjernenheden som den anden server.
- 192.168.0.200 - server1
- 192.168.0.201 - server2
Det første trin er at oprette en privat og offentlig nøgle på fjernserveren1.
ssh-keygen -t rsaGenererer offentlig / privat rsa-nøglepar.
Indtast fil, hvor nøglen skal gemmes (/ home / csalem /.ssh / id_rsa):
Oprettet katalog '/ hjem / csalem /.ssh '.
Indtast adgangssætning (tom for ingen adgangssætning):
Indtast den samme adgangssætning igen:
Din identifikation er gemt i / home / csalem /.ssh / id_rsa.
Din offentlige nøgle er gemt i / home / csalem /.ssh / id_rsa.pub.
Nøglefingeraftrykket er:
SHA256: 4p5YuEBEa5lrINzqPgwHRVhSS0TNlIIl70A0q2MFcS8 csalem @ Debian-PC
Nøglens tilfældige kunstbillede er:
+---[RSA 2048]----+
| + / @ =… |
| = * O == |
| ++ OE . |
| + * o… |
| o + = . S |
|++. o . |
| oo… o |
|.o . = . |
|… O o |
+----[SHA256]-----+
Spring hurtigt over nøglegenereringsprocessen, og gem filen. Tilføj ikke en adgangssætning, da den kan forhindre ikke-overvåget synkronisering mellem serverne.
Kopier derefter nøglen fra server1 til server2 ved hjælp af kommandoen:
ssh-kopi-id 192.168.0.201Nu hvor du har SSH-opsætning på begge systemer, kan du starte Unison til at synkronisere filer og mapper.
Lad os teste brugen af Unison på begge servere ved at oprette den mappe, vi synkroniserer på server1:
mkdir -p / dir1På server2 skal du oprette en mappe som ovenfor
mkdir -p / dir2Som nævnt respekterer Unison brugertilladelser. Derfor er det bedst at ændre tilladelser og ejerskab i begge mapper for at sikre, at begge mapper har læse- og skriverettigheder.
Dernæst tilføj alle de data, du vil synkronisere mellem serverne i dir1. Tilføj f.eks. Et par zip-filer.
sudo mv ~ / Dokumenter.zip / dir1Efter at have filerne, vil vi synkronisere i den rigtige mappe, køre unison kommando for at synkronisere fra server en som:
unison / dir1 ssh: // 192.168.0.201 // dir2Ved den første Unison-lancering modtager du en advarsel om, at synkroniseringsprocessen kan tage et stykke tid. Hvis du har store filer i telefonbøgerne, kan det tage et stykke tid, men da vi kun bruger det til testformål, skal det være relativt hurtigt.
Tryk på Enter for at starte synkroniseringsprocessen. Når synkroniseringsprocessen er afsluttet, skal du gå til server2, navigere til dir2 og liste indholdet af biblioteket som:
cd / dir2 && ls -la-rw-r - r-- 1 rodrod 436 5. januar 12:57 Dokumenter.lynlås
Ændring af Unison-konfiguration
I de fleste tilfælde vil vi ikke synkronisere filer interaktivt mellem disse servere, da processen er gentagen og ineffektiv. Vi kan redigere Unison-konfigurationsfilen for at tillade automatiske synkroniseringsfiler.
Brug kommandoen nedenfor til at redigere standardkonfigurationsfilen:
sudo vi ~ /.unison / standard.prfTilføj følgende linjer i filen:
auto = sandtbatch = sandt
Ovenstående linjer deaktiverer meddelelser, når filer synkroniseres og automatiserer processen.
Opsætning af Unison Cronjob
En sikker ting er, at programmører er meget afskyede for at gøre ting manuelt, især når det er muligt at automatisere, hvilket er tilfældet her. Vi kan oprette en cronjob, så Unison automatisk udfører synkronisering.
I server1 skal du oprette et simpelt bash-script for at køre unison-kommando som:
sudo touch / usr / bin / unisoncron && sudo vi / usr / bin / unisoncronI filen skal du starte med en shebang og tilføje kommandoen unison sync:
#!/ bin / bash /unison / dir1 ssh: // 192.168.0.201 // dir2
Som sædvanligt skal du lade scriptet udføre tilladelser:
sudo chmod 755 / usr / bin / unisoncronRediger nu din cronjob-fil med crontab:
sudo crontab -eHvis dette er din første gang du redigerer crontab-håber jeg, at det ikke er din editor og indtast følgende linje for at synkronisere med Unison hver 1. time:
* / 60 * * * * / usr / bin / unisoncron &> / dev / nullDu kan også indstille crontab til at køre på bestemte tidspunkter af dagen. Du behøver heller ikke bruge et script og kan bruge en rå kommando i crontab.
Konklusion
Denne vejledning viste dig, hvordan du installerer og konfigurerer Unison på et Debian-system til synkronisering af filer og mapper.
Selvom denne hurtige vejledning kan hjælpe dig i gang, kan du lære mere ved at bruge Unison man-sider (manuelle sider) eller den officielle dokumentation ved hjælp af nedenstående ressource:
- https: // www.cis.upenn.edu / ~ bcpierce / unison /
- https: // www.cis.upenn.edu / ~ bcpierce / unison / download / releases / stable / unison-manual.html