Kommandot Rsync (fjärrsynk) är ett Linux / Unix-verktyg som används för att synkronisera och kopiera filer och kataloger antingen lokalt eller på distans. De flesta Linux-nördar använder Rsync för att spegla, säkerhetskopiera eller migrera data över mappar, över diskar och nätverk. En anmärkningsvärd funktion med Rsync-kommandot är att den använder "deltaöverföringsalgoritmen.”
Delta Transfer-algoritmen fungerar genom att uppdatera målkatalogen med innehållet i källmålen. Om en ändring eller en ny fil skapas i källkatalogen kopieras endast den aktuella ändringen till målkatalogen när du kör Rsync-kommandot. För att synkronisera filer och kataloger mellan den lokala och en fjärrmaskin använder Rsync SSH.
Installerar Rsync i Linux
Rsync-kommandot är förinstallerat i de flesta Linux-operativsystem. Det kan dock inte vara fallet för vissa minimala installationer. Du kan installera Rsync genom att köra kommandona nedan i en terminal.
På CentOS & RHEL
yum install rsync -y
På Ubuntu och andra Debian-distributioner
sudo apt installera rsync -y
Rsync Grundläggande syntax
rsync-alternativ källmål
Några av standardalternativen / parametrarna som används med Rsync-kommandot:
-v: -verbose Verbose output
-r: kopierar data rekursivt
-z: komprimera fildata
-h: Ger utdata i ett läsbart format
-a: arkivera filer och katalog under synkronisering
-progress Visar förloppet för de Rsync-uppgifter som för närvarande körs.
Du kan se alla tillgängliga alternativ för Rsync-kommandot med alternativet “-help”.
$ rsync --hjälp
Topp 20 Rsync-exempel i Linux
Med den detaljerade informationen i åtanke, låt oss komma igång med 20 användbara Rsync-exempelkommandon som du kan använda med Linux-system. Vårt valfria operativsystem är Ubuntu 20.04 LTS; dock bör syntaxen också fungera för andra Linux-distributioner med Rsync installerat.
1. Kopiera / synkronisera filer lokalt med -v (ingående) alternativ
Det är det mest grundläggande Rsync-kommandot, även för en nybörjare. I det här exemplet kopierar vi filer mellan 'Original'katalog på skrivbordet till'Säkerhetskopiering'katalog i' / etc.' mapp. Vi kommer att inkludera -v (Verbose) -alternativet så att rsync kan ge information om vad som händer.
rsync -v Original /
En sak att notera med Rsync är att om målkatalogen inte finns kommer den automatiskt att skapa den. Låt oss se exemplet nedan där vi vill kopiera filer till katalogen “Foss”Det finns inte.
2. Synkronisera / kopiera filer och kataloger rekursivt med -r-alternativet
I kommandot ovan, om det fanns en katalog i 'Originalmappen, skulle den hoppas över. Det illustreras i bilden nedan.
För att övervinna detta, använd alternativet -r (rekursivt).
3. Synkronisera / kopiera filer mellan den lokala maskinen och fjärrmaskinen
Innan du utför den här uppgiften finns det flera parametrar som du behöver veta om fjärrservern / maskinen: IP-adressen, användarnamnet och användarlösenordet.
Den grundläggande syntaxen som vi kommer att använda är:
rsync [alternativ] [filer] [fjärranvändarnamn] @ [ip-adress]: / [destination]
Låt oss kopiera filer från vår 'Originalkatalog på skrivbordet till en fjärrserver.
4. Synkronisera / kopiera filer och kataloger från en fjärrserver till din lokala dator
Precis som det föregående kommandot måste vi känna till fjärrserverns IP-adress. I det här exemplet synkroniserar vi filer i 'Säkerhetskopieringmapp i serverns hemkatalog till vår lokala dator.
rsync -rv tuts @ 192.168.1.64: / home / tuts / Backup / home / tuts / Desktop / Original
5. Använd Rsync över SSH med alternativet -e
För att säkerställa säkerheten för filer och mappar använder vi Rsync över Secure Shell Protocol (SSH). Dessutom kommer SSH att tillhandahålla krypteringstjänster för att säkerställa att de är säkra när de tillhandahåller lösenordet för root / användare.
För att använda SSH lägger vi till alternativet -e som anger det protokoll som vi vill använda.
rsync -vre ssh Original / * tuts @ 192.168.1.64: / hem / tuts
6. Visa framsteg med Rsync-kommandot
I situationer där du kopierar flera filer eller en enorm fil, vet du att framstegen är effektiva. Lyckligtvis har rsync tillhandahållandet av detta alternativ --framstegalternativet.
sudo rsync -rv --progress Original / * / etc / Foss
7. Använd Rsync med alternativet 'inkludera'
Det finns situationer där du bara vill synkronisera vissa filer. Med kommandot Rsync orsakar du '-omfatta'möjlighet att utföra uppgiften. I det här exemplet synkroniserar vi bara filer som börjar med "I" -bokstaven.
sudo rsync -vr - inkludera 'I *' Original / / etc / Backup /
8. Använd Rsync med '-exclude' för att ignorera vissa filer
Med Rsync '-utesluta'alternativ kan du utesluta filer som du inte vill synkronisera / kopiera. I det här exemplet vill vi ignorera alla filer som börjar med bokstaven "I".
sudo rsync -vr --exkludera 'I *' Original / / etc / Backup /
Alternativt kan du använda båda alternativen i ett kommando. Se exemplet nedan.
sudo rsync -vr --exclude '*' --include 'I *' Original / / etc / Backup /
Vi utesluter alla filer förutom de som börjar med bokstaven 'I.''
9. Använd Rsync med -delete-kommandot
Det finns situationer där det finns filer i målkatalogen, men inte i källmappen. För synkronisering är det bäst att först ta bort sådana filer från målkatalogen. Lyckligtvis kommer Rsync med '-radera'alternativ, vilket gör detta automatiskt.
Om en fil finns i målkatalogen men ingen i källan kommer den att tas bort.
rsync -vr --delete / etc / Backup / tuts @ 192.168.1.64: / home / tuts / Backup
10. Ställ in den maximala storleken på filer som ska överföras med Rsync
Om du är bekymrad över lagringsutrymme eller bandbredd för fjärrfilssynkronisering måste du använda alternativet '-max-storlek' med kommandot Rsync. Med det här alternativet kan du ställa in den maximala storleken på en fil som kan kopieras.
Till exempel en-max-storlek = 100köverför endast data som är lika med eller mindre än 100 kilobyte.
rsync -vr --max-size = '200k' / etc / Backup / tuts @ 192.168.1.64: / home / tuts / Backup
11. Ta bort källfiler automatiskt efter en lyckad överföring
Ta en situation där du har en fjärrbackupserver och en säkerhetskopieringskatalog på din dator. Du säkerhetskopierar data till säkerhetskopieringsmappen på din dator innan du synkroniserar den med säkerhetskopieringsservern. Efter varje synkronisering måste du radera data i säkerhetskopian.
Lyckligtvis kan du göra detta automatiskt med '--ta bort källfileralternativet.
Genom att köra ett ls-kommando i källmappen bekräftar vi att filerna verkligen raderades.
12. Utför en torrkörning med Rsync
För nybörjare som inte är säkra på kommandot Rsync kan du förstöra ditt målkataloginnehåll, och ångra kan vara lika tråkigt. Med '-torrkörning'alternativet ger kommandot Rsync dig en utdata om vad som kommer att utföras, men det gör det inte.
Därför kan du titta på den här utgången om det är vad du förväntar dig innan du går ut för att ta bort '-torrkörningalternativet.
rsync -vr --dry-run Original / * tuts @ 192.168.1.64: / home / tuts / Backup
13. Ställ in bandbreddsgräns som krävs för att överföra filer.
Om du är i ett delat nätverk eller kör flera program som behöver en internetanslutning skulle det vara effektivt att ställa in en bandbreddsgräns som krävs för att synkronisera / kopiera filer på distans. Vi kan göra detta med Rsync '-bwlimitalternativet.
Denna hastighet beräknas i kilobyte. Därför när-bwlimit = 1000'betyder att endast 1000Kb kan överföras per sekund.
rsync -vr --bwlimit = 1000 Original / * tuts @ 192.168.1.64: / home / tuts / Backup
14. Synkronisera hela filerna med Rsync
Som standard synkroniserar Rsync bara de modifierade blocken och byten. Om du därför hade synkroniserat en textfil tidigare och senare lagt till några texter i källfilen när du synkroniserar kommer bara den infogade texten att kopieras. Om du vill synkronisera hela filen igen måste du använda alternativet '-W'.
rsync -vrW Original / * tuts @ 192.168.1.64: / home / tuts / Backup
15. Synkronisera / kopiera inte modifierade filer i målkatalogen
Det finns situationer där du har gjort ändringar av filer som finns i målmappen. Om du kör ett Rsync-kommando kommer dessa ändringar att skrivas över av dem i källfilen. Använd alternativet '-u' för att undvika sådana.
rsync -vu Original / * tuts @ 192.168.1.64: / home / tuts / Backup
16. Använd alternativet Rsync med -i för att se skillnaden i filer mellan källa och destination
Om du vill veta vilka nya ändringar som kommer att göras i målkatalogen, använd alternativet '-i', som visar skillnaden i filer mellan käll- och målkatalogen.
rsync -avzi Original / Backup /
Forma utdata i bilden ovan, och vi ser en fil som heter 'heloo.py ' inte finns i målkatalogen. Låt oss titta på några av dessa parametrar.
d: visar en ändring i målfilen
f: representerar en fil
t: visar en förändring av tidsstämplar
s: indikerar en ändring av filens storlek
17. Använd Rsync för att bara kopiera katalogstruktur
Du kan använda Rsync för att bara synkronisera katalogstrukturen om du inte är intresserad av filerna. Vi måste använda parametrarna -f ”+ * /” -f ”- *” före källkatalogen.
rsync -av -f "+ * /" -f "- *" / home / tuts / Desktop / Original / / home / tuts / Documents /
18. Lägg till datumstämpel i katalognamnet
Om du vill spåra när överföringar skett utan att öppna katalogegenskaper kan du enkelt lägga till ett datum i ett katalognamn. Det lägger till en datumstämpel för alla synkroniseringar du gör med Rsync.
För att göra det kommer vi att bifoga $ (datum + \\% Y - \\% m - \\% d) till målkatalogen.
sudo rsync -rv Original / / etc / $ (datum + \\% Y - \\% m - \\% d)
19. Kopiera en enda fil lokalt
För att synkronisera / kopiera en enda fil med Rsync måste du ange filsökvägen följt av destinationskatalogvägen.
rsync -v Original / heloo.py Backup /
20. Fjärrkopiering av flera filer
För att kopiera flera filer samtidigt måste du ange sökvägen till dem alla. Denna metod är effektiv för endast ett litet antal filer.
rsync -vr / home / tuts / Desktop / Original / heloo.py / home / tuts / Desktop / Backup / index.html tuts @ 192.168.1.64: / home / tuts / Backup
Det handlar om de 20 mest användbara Rsync-exemplen som gör att du kan synkronisera filer och kataloger både lokalt och på distans. Lämna gärna din feedback och kommentarer nedan.