Debian

Unison gebruiken om bestanden tussen servers te synchroniseren

Unison gebruiken om bestanden tussen servers te synchroniseren
Deze zelfstudie laat u zien hoe u de Unison-tool voor bestandssynchronisatie op Debian-systemen instelt en gebruikt. Met Unison kunt u bestanden synchroniseren tussen twee verschillende schijven of mappen in hetzelfde systeem of twee andere systemen via het netwerk.

Wat is Unison??

De Unison-technologie ontwikkeld door Benjamin C Pierce onder de GPL-licentie stelt gebruikers in staat om twee enkele bestandsinstanties op hetzelfde systeem maar verschillende schijven of twee andere systemen te synchroniseren.

Unison stelt u in staat om een ​​bijgewerkte en identieke versie van hetzelfde bestand of dezelfde map te behouden. Het is bruikbaar in een breed scala aan contexten, zoals SSH, waardoor veilige overdracht van gegevens tussen apparaten of mappen mogelijk is.

De Unison-tool is platformonafhankelijk, waardoor gebruikers bestanden en mappen kunnen synchroniseren tussen systemen met hetzelfde of verschillende besturingssystemen. U kunt bijvoorbeeld bestanden synchroniseren van een Linux-systeem naar een BSD-systeem. Vanwege de beveiligingsfuncties synchroniseert Unison bestanden en mappen en past het eigendoms- en machtigingsrechten toe op beide systemen.

De Unison-tool is ontwikkeld met veiligheid in het achterhoofd en is bestand tegen storingen waarbij onderbrekingen optreden tussen synchronisatiepunten. Als Unison bestands- en mapconflicten detecteert, rapporteert het de bestaande conflicten en kunnen de gebruikers selecteren welke versie van de bestanden moet worden toegepast.

Unison kan werken met of ondersteuning bieden voor langzame netwerken, waardoor het een zeer efficiënt hulpmiddel is voor bandbreedtegebruik. Het synchroniseert alleen onderdelen en mappen die zijn gewijzigd, waardoor zware belasting wordt voorkomen en het synchronisatieproces zeer eenvoudig en snel wordt bijgewerkt.

Ondanks de primaire gebruikscontext is Unison een krachtig hulpmiddel dat kan worden aangepast om een ​​breed scala aan gebruiksscenario's te creëren.

In deze zelfstudie wordt besproken hoe u het Unison-bestandssynchronisatiesysteem op Debian 10 . kunt installeren en instellen.

Unison installeren op Debian 10

Unison is een populaire tool; daarom is het beschikbaar in officiële repositories van grote Linux-distributies.

Om de opdrachtregelversie van Unison op Debian te installeren, begint u het systeem bij te werken:

sudo apt-get update && sudo apt-get upgrade

Gebruik vervolgens de eenvoudige opdracht apt to om de tool te installeren.

sudo apt-get install unison -y

Als u een desktopomgeving op uw systeem hebt geïnstalleerd en de voorkeur geeft aan een GUI-versie van de tool, installeer dan unison-gtk met behulp van de opdracht:

sudo apt-get install unison-gtk

OPMERKING: Zorg ervoor dat u Unison installeert op beide versies van de systemen waar u bestanden tussen wilt synchroniseren. Voor compatibiliteit en om de kans op fouten te minimaliseren, is het beter om dezelfde versie van Unison in beide systemen te hebben.

Bestanden synchroniseren met Unison

Unison biedt ons manieren om bestanden en mappen tussen lokale machines en externe machines te synchroniseren met behulp van directe socketverbindingen en SSH. Aangezien we synchroniseren tussen twee Debian-servers, zullen we de synchronisatie van lokale machines overslaan.

Unison Remote en Remote Sync via SSH

Om bestanden en mappen tussen externe machines te synchroniseren, moet Unison op beide systemen zijn geïnstalleerd en moet u SSH-toegang hebben tot zowel de systemen als hun IP-adressen.

U kunt ook uw lokale machine als een server gebruiken en het externe apparaat als de andere server.

De eerste stap is het maken van een privé- en openbare sleutel op de externe server1.

ssh-keygen -t rsa
Publiek/privé rsa-sleutelpaar genereren.
Voer het bestand in waarin u de sleutel wilt opslaan (/home/csalem/.ssh/id_rsa):
Gemaakte map '/home/csalem/.ssh'.
Voer wachtwoordzin in (leeg voor geen wachtwoordzin):
Voer dezelfde wachtwoordzin opnieuw in:
Uw identificatie is opgeslagen in /home/csalem/.ssh/id_rsa.
Uw openbare sleutel is opgeslagen in /home/csalem/.ssh/id_rsa.kroeg.
De belangrijkste vingerafdruk is:
SHA256:4p5YuEBEa5lrINzqPgwHRVhSS0TNlIIl70A0q2MFcS8 csalem@Debian-PC
De willekeurige kunstafbeelding van de sleutel is:
+---[RSA 2048]----+
|+/@=… |
|=*O== |
|++OE . |
|+*o… |
|o+= . S |
|++. O . |
|oo… o |
|.O . = . |
|… o o |
+----[SHA256]-----+

Sla snel het proces voor het genereren van de sleutel over en sla het bestand op. Voeg a.u.b. geen wachtwoordzin toe omdat dit ongecontroleerde synchronisatie tussen de servers kan belemmeren.

Kopieer vervolgens de sleutel van server1 naar server2 met behulp van de opdracht:

ssh-kopie-id 192.168.0.201

Nu je op beide systemen SSH hebt ingesteld, kun je Unison starten om bestanden en mappen te synchroniseren.

Laten we het gebruik van Unison op beide servers testen door de map te maken die we op server1 zullen synchroniseren:

mkdir -p /dir1

Maak op server2 een map zoals hierboven

mkdir -p /dir2

Zoals vermeld, respecteert Unison de gebruikersrechten. Daarom is het het beste om machtigingen en eigendom in beide mappen te wijzigen om ervoor te zorgen dat beide mappen lees- en schrijfrechten hebben.

Voeg vervolgens alle gegevens toe die u wilt synchroniseren tussen de servers in dir1. Voeg bijvoorbeeld een paar zip-bestanden toe.

sudo mv ~/Documenten.zip /dir1

Als we de bestanden hebben, willen we synchroniseren in de juiste map, een unisono-opdracht uitvoeren om vanaf server één te synchroniseren als:

unisono /dir1 ssh://192.168.0.201//dir2

Bij de eerste Unison-start ontvang je een waarschuwing dat het synchronisatieproces even kan duren. Als je grote bestanden in de mappen hebt, kan dit even duren, maar aangezien we het alleen voor testdoeleinden gebruiken, zou het relatief snel moeten gaan.

Druk op Enter om het synchronisatieproces te starten. Zodra het synchronisatieproces is voltooid, gaat u naar server2, navigeert u naar dir2 en geeft u de inhoud van de map weer als:

cd /dir2 && ls -la
-rw-r--r-- 1 wortel wortel 436 5 jan 12:57 Documenten.zip

Unison-configuratie wijzigen

In de meeste gevallen willen we bestanden niet interactief synchroniseren tussen deze servers, omdat het proces repetitief en inefficiënt is. We kunnen het Unison-configuratiebestand bewerken om automatische synchronisatiebestanden toe te staan.

Gebruik de onderstaande opdracht om het standaardconfiguratiebestand te bewerken:

sudo vi ~/.unisono/standaard.prf

Voeg in het bestand de volgende regels toe:

auto=waar
batch=true

De bovenstaande regels schakelen prompts uit bij het synchroniseren van bestanden, waardoor het proces wordt geautomatiseerd.

Unison Cronjob instellen

Een ding is zeker: programmeurs zijn erg afkerig om dingen handmatig te doen, vooral als het mogelijk is om te automatiseren, wat hier het geval is. We kunnen een cronjob instellen zodat Unison de synchronisatie automatisch uitvoert.

Maak in server1 een eenvoudig bash-script om de unisono-opdracht uit te voeren als:

sudo touch /usr/bin/unisoncron && sudo vi /usr/bin/unisoncron

Begin in het bestand met een shebang en voeg de unisono-synchronisatieopdracht toe:

#!/bin/bash/
unisono /dir1 ssh://192.168.0.201//dir2

Laat het script, zoals gewoonlijk, machtigingen uitvoeren:

sudo chmod 755 /usr/bin/unisoncron

Bewerk nu je cronjob-bestand met crontab:

sudo crontab -e

Als dit de eerste keer is dat je crontab bewerkt - ik hoop dat dit niet het geval is - kies dan je editor en voer de volgende regel in om elk uur met Unison te synchroniseren:

*/60 * * * * /usr/bin/unisoncron &> /dev/null

Je kunt de crontab ook zo instellen dat deze op specifieke tijden van de dag wordt uitgevoerd. U hoeft ook geen script te gebruiken en kunt een onbewerkte opdracht gebruiken in de crontab.

Conclusie

Deze tutorial liet je zien hoe je Unison installeert en instelt op een Debian-systeem voor synchronisatie van bestanden en mappen.

Hoewel deze beknopte handleiding u op weg kan helpen, kunt u meer leren door Unison-manpagina's (handleidingenpagina's) of de officiële documentatie te gebruiken met behulp van de onderstaande bron:

Strijd om Wesnoth Zelfstudie
The Battle for Wesnoth is een van de meest populaire open source strategiespellen die je op dit moment kunt spelen. Dit spel is niet alleen al heel la...
0 A.D. zelfstudie
Van de vele strategiespellen die er zijn, 0 A.D. slaagt erin om op te vallen als een uitgebreide titel en een zeer diep, tactisch spel ondanks dat het...
Unity3D-zelfstudie
Inleiding tot Unity 3D Unity 3D is een krachtige game-ontwikkelingsengine. Het is platformoverschrijdend, zodat je games voor mobiel, internet, deskto...