Debian

Hur man använder Unison för att synkronisera filer mellan servrar

Hur man använder Unison för att synkronisera filer mellan servrar
Denna handledning visar hur du konfigurerar och använder Unison File-synkroniseringsverktyget på Debian-system. Med Unison kan du synkronisera filer mellan två olika diskar eller kataloger i samma system eller två andra system via nätverket.

Vad är Unison?

Unison-tekniken som utvecklats av Benjamin C Pierce under GPL-licensen tillåter användare att synkronisera två enskilda filinstanser på samma system men olika diskar eller två andra system.

Unison låter dig behålla en uppdaterad och identisk version av samma fil eller katalog. Den kan användas i en mängd olika sammanhang, till exempel SSH, vilket möjliggör säker överföring av data mellan enheter eller kataloger.

Unison-verktyget är plattformsoberoende, så att användare kan synkronisera filer och kataloger mellan system som kör samma eller olika operativsystem. Du kan till exempel synkronisera filer från ett Linux-system till ett BSD-system. På grund av säkerhetsfunktionerna synkroniserar Unison filer och kataloger och tillämpar äganderätt och behörighetsrättigheter på båda systemen.

Unison-verktyget är utvecklat med säkerhet i åtanke och kan överleva fel där avbrott inträffar mellan synkroniseringspunkter. Om Unison upptäcker fil- och katalogkonflikter rapporterar den de befintliga konflikterna och låter användarna välja vilken version av filerna som ska tillämpas.

Unison kan arbeta med eller stöder långsamma nätverk, vilket gör det till ett mycket effektivt verktyg för bandbreddsanvändning. Den synkroniserar endast delar och kataloger som har ändrats, vilket förhindrar tung belastning och uppdaterar synkroniseringsprocessen mycket enkelt och snabbt.

Trots sitt primära användningskontext är Unison ett kraftfullt verktyg som kan modifieras för att skapa ett stort antal användningsfall.

Denna handledning diskuterar hur man installerar och konfigurerar Unison File Synchronization System på Debian 10.

Hur man installerar Unison på Debian 10

Unison är ett populärt verktyg; på grund av det är det tillgängligt i officiella arkiv för större Linux-distributioner.

För att installera kommandoradsversionen av Unison på Debian, börja uppdatera systemet:

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

Använd sedan det enkla apt-kommandot för att installera verktyget.

sudo apt-get install unison -y

Om du har en skrivbordsmiljö installerad på ditt system och föredrar en GUI-version av verktyget, installera unison-gtk med kommandot:

sudo apt-get install unison-gtk

NOTERA: Se till att du installerar Unison på båda versionerna av de system du vill synkronisera filer mellan dem. För kompatibilitet och för att minimera risken för fel är det bättre att ha samma version av Unison i båda systemen.

Hur man synkroniserar filer med Unison

Unison ger oss sätt att synkronisera filer och kataloger mellan lokala maskiner och fjärrmaskiner med direktuttagsanslutningar och SSH. Eftersom vi synkroniserar mellan två Debianservrar hoppar vi över lokal maskinsynkronisering.

Unison Remote och Remote Sync via SSH

För att synkronisera filer och kataloger mellan fjärrmaskiner måste du ha Unison installerat i båda systemen, ha SSH-åtkomst till både systemen och deras IP-adresser.

Du kan också använda din lokala maskin som en server och fjärrenheten som den andra servern.

Det första steget är att skapa en privat och offentlig nyckel på fjärrservern1.

ssh-keygen -t rsa
Skapar offentligt / privat rsa-nyckelpar.
Ange en fil där nyckeln ska sparas (/ home / csalem /.ssh / id_rsa):
Skapad katalog '/ hem / csalem /.ssh '.
Ange lösenfras (tom för ingen lösenfras):
Ange samma lösenfras igen:
Din identitet har sparats i / home / csalem /.ssh / id_rsa.
Din offentliga nyckel har sparats i / home / csalem /.ssh / id_rsa.pub.
Nyckelfingeravtrycket är:
SHA256: 4p5YuEBEa5lrINzqPgwHRVhSS0TNlIIl70A0q2MFcS8 csalem @ Debian-PC
Nyckelns slumpmässiga konstbild är:
+---[RSA 2048]----+
| + / @ = ... |
| = * O == |
| ++ OE . |
| + * o ... |
| o + = . S |
|++. o . |
| oo ... o |
|.o . = . |
| ... o o |
+----[SHA256]-----+

Hoppa snabbt över nyckelgenereringsprocessen och spara filen. Lägg inte till en lösenfras eftersom det kan hindra oövervakad synkronisering mellan servrarna.

Kopiera sedan nyckeln från server1 till server2 med kommandot:

ssh-copy-id 192.168.0.201

Nu när du har SSH-inställningar på båda systemen kan du starta Unison för att synkronisera filer och kataloger.

Låt oss testa användningen av Unison på båda servrarna genom att skapa den katalog som vi kommer att synkronisera på server1:

mkdir -p / dir1

På server2 skapar du en katalog enligt ovan

mkdir -p / dir2

Som nämnts respekterar Unison användarbehörigheter. Därför är det bäst att ändra behörigheter och ägande i båda katalogerna för att säkerställa att båda katalogerna har läs- och skrivbehörigheter.

Lägg sedan till all data du vill synkronisera mellan servrarna i dir1. Lägg till exempel till några zip-filer.

sudo mv ~ / Dokument.zip / dir1

Med filerna vill vi synkronisera i rätt katalog, köra unison-kommando för att synkronisera från server en som:

unison / dir1 ssh: // 192.168.0.201 // dir2

Vid den första Unison-lanseringen får du en varning om att synkroniseringsprocessen kan ta en stund. Om du har stora filer i katalogerna kan det ta ett tag, men eftersom vi bara använder det för teständamål bör det gå relativt snabbt.

Tryck på Enter för att starta synkroniseringsprocessen. När synkroniseringsprocessen är klar, gå till server2, navigera till dir2 och lista innehållet i katalogen som:

cd / dir2 && ls -la
-rw-r - r-- 1 root root 436 Jan 5 12:57 Dokument.blixtlås

Ändra Unison-konfiguration

I de flesta fall vill vi inte interaktivt synkronisera filer mellan dessa servrar eftersom processen är repetitiv och ineffektiv. Vi kan redigera Unison-konfigurationsfilen för att tillåta automatiska synkroniseringsfiler.

Använd kommandot nedan för att redigera standardkonfigurationsfilen:

sudo vi ~ /.unison / default.prf

Lägg till följande rader i filen:

auto = sant
sats = sant

Ovanstående rader inaktiverar meddelanden när filer synkroniseras och automatiseras processen.

Ställa in Unison Cronjob

En säker sak är att programmerare är mycket ovilliga att göra saker manuellt, särskilt när det är möjligt att automatisera, vilket är fallet här. Vi kan skapa en cronjob för att Unison ska kunna utföra synkronisering automatiskt.

Skapa ett enkelt bash-skript i server1 för att köra unison-kommando som:

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

Börja med en shebang i filen och lägg till kommandot unison sync:

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

Som vanligt gör du att skriptet kör behörigheter:

sudo chmod 755 / usr / bin / unisoncron

Redigera nu din cronjob-fil med crontab:

sudo crontab -e

Om det här är första gången du redigerar crontab-jag hoppas att det inte är din redigerare och ange följande rad för att synkronisera med Unison var 1: e timme:

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

Du kan också ställa in crontab så att den körs vid specifika tider på dygnet. Du behöver inte heller använda ett skript och kan använda ett råkommando i crontab.

Slutsats

Denna handledning visade dig hur du installerar och installerar Unison på ett Debian-system för synkronisering av filer och kataloger.

Även om den här snabbguiden kan hjälpa dig att komma igång kan du lära dig mer genom att använda Unison man-sidor (manuella sidor) eller den officiella dokumentationen med hjälp av resursen nedan:

OpenTTD vs Simutrans
Att skapa din egen transportsimulering kan vara rolig, avkopplande och extremt lockande. Det är därför du måste se till att du testar så många spel so...
OpenTTD-handledning
OpenTTD är ett av de mest populära affärssimuleringsspelen där ute. I det här spelet måste du skapa en underbar transportaffär. Du kommer dock att bör...
SuperTuxKart för Linux
SuperTuxKart är en fantastisk titel som är utformad för att ge dig Mario Kart-upplevelsen gratis på ditt Linux-system. Det är ganska utmanande och rol...