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 upgradeAnvänd sedan det enkla apt-kommandot för att installera verktyget.
sudo apt-get install unison -yOm 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-gtkNOTERA: 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.
- 192.168.0.200 - server1
- 192.168.0.201 - server2
Det första steget är att skapa en privat och offentlig nyckel på fjärrservern1.
ssh-keygen -t rsaSkapar 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.201Nu 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 / dir1På server2 skapar du en katalog enligt ovan
mkdir -p / dir2Som 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 / dir1Med 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 // dir2Vid 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.prfLägg till följande rader i filen:
auto = santsats = 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 / unisoncronBö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 / unisoncronRedigera nu din cronjob-fil med crontab:
sudo crontab -eOm 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 / nullDu 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:
- https: // www.cis.upenn.edu / ~ bcpierce / unison /
- https: // www.cis.upenn.edu / ~ bcpierce / unison / download / releases / stable / unison-manual.html