Rsync-kommandot låter oss överföra och synkronisera filer över en SSH-anslutning eller en lokal maskin på olika kataloger och maskiner. Om du någonsin behöver säkerhetskopiera din katalog eller synkronisera data, är Rsync ett av de bästa verktygen för systemsäkerhetskopiering. Att använda Rsync är mycket effektivare än att bara kopiera filer eftersom Rsync bara kopierar det som är annorlunda.
Till exempel, om du försöker säkerhetskopiera 1000 foton, kommer Rsync bara att välja de specifika filerna som är nya eller annorlunda sedan den senaste säkerhetskopieringen. Och även, om du kopierar data och tappar nätverksanslutningen och kör kommandot Rsync igen, vet du var du slutade och behöver inte börja om.
Som Linux-systemadministratör bör du känna till några viktiga och praktiska exempel på Rsync-kommandon i Linux för att göra din upplevelse smidigare.
Funktioner i Rsync på Linux
Här lägger jag till några grundläggande funktioner i Rsync. Du kan gå igenom punkterna nedan för en detaljerad beskrivning av fjärrsynkroniseringskommandot som hjälper dig senare att förstå exemplen på Rsync-kommandon i Linux.
- Kommandot Rsync kan kopiera filer och kataloger och underkataloger.
- Eftersom Rsync använder deltaöverföringsalgoritmen hoppar verktyget över filer som redan finns på destinationsadressen.
- Rsync ignorerar filen som är exakt samma som klient- och värdsystemet.
- Du kan använda Rsync både över SSH och på en lokal maskin.
- Du kan utföra tar-kommandon tillsammans med kopiering av filer.
- I de flesta fall behöver inte Rsync privilegiet.
- Du kan använda pipeline-kommandon tillsammans med Rsync för att överföra filer snabbare och hålla latensen lägre.
- För att kopiera filer över webben använder Rsync TCP-protokollet.
- Rsync kan minska mängden bandbredd som krävs.
- Du kan inte kopiera filer mellan två eller flera fjärrvärdar via Rsync på Linux.
Syntax för fjärrsynkronisering i Linux
Här lägger jag till några av de viktigaste syntaxerna och sammanfattningarna av Rsync. Att granska syntaxen och flaggorna är viktigt för att bättre förstå exemplen på Rsync-kommandon i Linux.
De givna kommandoformaten är för att överföra filer på den lokala maskinen.
rsync [OPTION...] SRC... [DEST]
Rsync använder det givna kommandoformatet för att överföra filer via ett fjärrskal.
Pull: rsync [OPTION...] [[email protected]]HOST:SRC... [DEST] Push: rsync [OPTION...] SRC... [[email protected]]HOST:DEST
Rsync använder det givna kommandoformatet för att överföra filer när man kommer åt värden som en demon.
Pull: rsync [OPTION...] [[email protected]]HOST::SRC... [DEST] rsync [OPTION...] rsync://[[email protected]]HOST[:PORT]/SRC... [DEST] Push: rsync [OPTION...] SRC... [[email protected]]HOST::DEST rsync [OPTION...] SRC... rsync://[[email protected]]HOST[:PORT]/DEST
Installera Rsync på Linux
Innan vi hoppar in i exemplen på Rsync-kommandon i Linux måste vi kontrollera om vi har verktyget installerat på systemet eller inte. Som standard kommer Rsync förinstallerat med alla större Linux-distributioner. Därför, om du upptäcker att verktyget inte är installerat på ditt system, kan du enkelt få Rsync-verktyget på din maskin. Här inkluderar jag kommandon för större Linux-distributioner för att installera Rsync.
Skaffa Rsync på Fedora och Red Hat Linux
sudo yum install rsync -y sudo dnf install rsync -y
Installera Rsync på Debian/Ubuntu Linux
sudo apt install rsync -y
Du kan få Rsync-verktyget från Snap-kommandon på Arch Linux-system. Kör nedanstående kommandon för att få Rsync-verktyget på Arch Linux. Först, klona förvaret på Linux.
git clone https://aur.archlinux.org/snapd.git cd snapd makepkg -si
Kör nu systemkontrollkommandona för att använda uttagen. Kör sedan kommandot Adjust för att installera verktyget.
sudo systemctl enable --now snapd.socket sudo ln -s /var/lib/snapd/snap /snap sudo snap install rsync-leftyfb
Slutligen, när installationen är klar, kan du nu kontrollera Rsync-hjälpsidan i terminalskalet.
$ rsync --help
Rsync på Linux
Rsync är den korta formen av fjärrsynkroniseringskommandot. Detta Rsync-verktyg är tillgängligt för både Mac och Linux. I båda fallen är syntaxerna och kommandostilarna praktiskt taget desamma. Nu, när vi säger fjärrsynkronisering, betyder det inte alltid att du behöver synkronisera eller kopiera filer över SSH eller Internet.
Du kan också köra Rsync på samma maskin för att synkronisera två olika kataloger eller underkataloger. En mycket effektiv användning av Rsync ses vid uppdatering av paketförråd och alternativa eller spegelservrar.
I det här inlägget kommer vi att titta på några exempel på de mest använda och kraftfulla Rsync-kommandona för Linux.
Rsync-exempel på Linux
Det här är några grundläggande exempel på kommandot och formatet Rsync i Linux. Det som anges nedan är kommandoformatet, och det andra är för att använda Rsync över SSH.
På Linux kommer Rsync att upprätta en länk över SSH-anslutningen när den körs i en värd-klientmiljö. När fjärranvändaren eller klienten accepterar anslutningen, utlöser Rsync på klienten automatiskt Rsync på värdsystemet.
Rsync allmänt kommandoformat
$ rsync [options] source [destination]
Rsync-kommandoformat för SSH-anslutningar
$ rsync local-file [email protected]:remote-file
1. Kommando för fjärrsynkronisering för att kopiera alla filer i katalogen
Nedanstående exempel på Rsync-kommandot i Linux kommer att kopiera alla filer från /tmp/documents-katalogen.
$ rsync -av Documents/* /tmp/documents
I det här kommandot har vi använt tre flaggor; -ay -v, och *. Här är förklaringen av vad de gör i kommandot.
- -a: Flaggan -a utför kommandot i fil-/biblioteksform.
- -v: -v-skylten används för att köra Rsync verbose.
- – *: Symbolen * säkerställer att alla filer väljs och kopieras.
Om vi nu lägger till några nya filer i den ursprungliga katalogen och kör Rsync igen, kommer den att kopiera de nya filerna och rapportera verbal utdata till skalet.
$ rsync -av Documents/* /tmp/documents
Kommandot som nämns nedan låter oss köra ett test för att veta vilka filer som kommer att synkroniseras för att undvika fel.
$ rsync -aunv /home/ubuntupit/Documents/* /home/ubuntupit/Pictures/
Efter att ha kört en testkontroll kan vi nu köra själva kommandot genom att ta bort flaggan -n i kommandot.
$ rsync -auv /home/ubuntupit/Documents/* /home/ubuntupit/Pictures/
2. Exempel på Rsync-kommando över SSH
Hittills har vi sett några Rsync-exempel på hur man kör det på en lokal maskin. Här kommer vi att se hur man kör det på servrarna. All syntax är densamma; du behöver bara ange webbserverns adress och användarnamn.
$ rsync -av --ignore-existing Documents/* [email protected]:~/all/
3. Rsync-exempel på Linux: Dry Run Rsync
I programmering definieras termen torrkörning som att köra ett kommando bara för att se en förhandsvisning eller en falsk körning för att kontrollera vad som kan hända om vi kör kommandot. Här kan vi också använda torrkörningskommandot för Rsync.
Exemplen på Rsync-kommandot nedan låter oss kontrollera vilka filer som kommer att synkroniseras på värdsystemet från den fjärranslutna Linux-servern. Senare kan vi köra kommandot utan hån.
$ rsync -av --dry-run --update Documents/* [email protected]:~/all/ $ rsync -av --update Documents/* [email protected]:~/all/
4. Synkronisera filer mellan lokal maskin och fjärrserver
Kommandot ovan visar hur man skickar filer från en lokal maskin till en lokal maskin eller från en server till en annan värd. Följande Rsync-exempel visar hur du kan använda verktyget för att skicka filer från en lokal dator till en fjärransluten Linux-maskin.
rsync [options] [files] [remote-username]@[ip-address]:/[destination]
5. Överför filer från fjärrserver till lokal maskin
Precis det omvända till kommandot ovan, det nedan nämnda exemplet på Rsync-kommandot visar dig hur du kan skicka filer från den fjärranslutna Linux-servern till din lokala maskin.
rsync -rv [email protected]:/home/ubuntupit/Backup /home/ubuntupit/Desktop/Original
6. Visa framsteg med Rsync
Detta är mycket viktigt för dem som behöver överföra stora filer via Rsync-verktyget. Till exempel visar det nedan nämnda exemplet på Rsync-kommandot hur du kan övervaka och observera överföringens framsteg i CLI på Linux.
sudo rsync -rv --progress Original/* /etc/ubuntupit
Du kan köra kommandot Rsync med flaggan ‘–include’ för att lägga till en specifik fil i synkroniseringsprocessen.
sudo rsync -vr --include 'I*' Original/ /etc/Backup/
7. Använd Rsync med ‘–exclude’ för att ignorera filer
Med Rsync kan du också använda ett kommando för att utesluta vilken fil som helst från ditt kommando. Nedanstående exempel på Rsync-kommandot i Linux visar oss hur man utesluter en fil som vi inte vill synkronisera. Här har jag uteslutit filen. To_check_rsync_two (en annan kopia).txt ska synkroniseras via detta Rsync-kommando på mitt Linux-system.
$ sudo rsync -vr --exclude 'To_check_rsync_two (another copy).txt' /home/ubuntupit/Desktop/ /home/ubuntupit/Documents/
På samma sätt kan du också inkludera en fil om du starkt vill inkludera som du tror att rsync inte kommer att lägga till som standard.
sudo rsync -vr --exclude '*' --include 'I*' Original/ /etc/Backup/
För att ta bort eller ta bort en fil för synkronisering via kommandot Rsync kan du använda flaggan -delete i kommandot i terminalskalet.
rsync -vr --delete /etc/Backup/ [email protected]:/home/ubuntupit/Backup
8. Ställ in den maximala storleksgränsen
Om du använder en begränsad mängd bandbreddsdata på en dator och behöver överföra flera filer, men inte vet när du ska stoppa överföringen för att spara bandbredd, kan du använda det nedan nämnda exemplet på Rsync Command för att begränsa den maximala storleken Filöverföring.
rsync -vr --max-size="200k" /etc/Backup/ [email protected]:/home/ubuntupit/Backup
9. Radera källfiler automatiskt efter en överföring
Om din värddator har begränsat diskutrymme och du vill radera filen samtidigt efter att du överfört filen till ditt system, kan du använda raderingsflaggan med kommandot Rsync i Linux-terminalen.
$ rsync -vr --remove-source-files Original/* [email protected]:/home/ubuntupit/backups/
10. Synkronisera alla filer med Remote Sync
Hittills har vi sett att Rsync-kommandot bara synkroniserar de filer som inte har redigerats eller modifierats. Men om du vill synkronisera alla dina modifierade och omodifierade filer kan du använda Rsync-kommandot nedan.
rsync -vrW Original/* [email protected]:/home/ubuntupit/Backup
11. Sluta synkronisera modifierade filer på destinationen
Efter att ha valt ett helt system, om du inte vill synkronisera en specifik fil eller mapp, kan du tilldela den sökvägen till Rsync-kommandot så att Rsync-verktyget hoppar över synkroniseringssökvägen.
rsync -vu Original/* [email protected]:/home/ubuntupit/Backup
12. Lägg till -i Flag för att övervaka skillnaden
För att se skillnaden mellan originalfilen och filen efter synkronisering, använd en i-flagga med kommandot.
rsync -avzi Original/ Backup/
13. Använd fjärrsynkronisering endast för att kopiera katalogstruktur
Detta kommando är mycket intressant för dem som är intresserade av att kopiera eller överföra filen; nu kan du använda kommandot rsync för att visa katalogstrukturen genom kommandot rsync.
rsync -av -f"+ */" -f"- *" /home/ubuntupit/Desktop/Original/ /home/ubuntupit/Documents/
14. Lägg till datumstämpel i katalognamnet
För att inkludera en tidsstämpel på filen medan du överför den via fjärrsynkroniseringsverktyget kan du använda följande markeringsformat i kommandot för destinationsplatsen.
Destination directory: $(date +\\%Y-\\%m-\\%d) sudo rsync -rv /home/ubuntupit/Documents/* /etc/$(date +\\%Y-\\%m-\\%d)
15. Kopiera flera filer på distans
Hittills har vi sett hur man kopierar och överför en enskild fil från en fjärrserver till en lokal maskin eller vice versa från en värddator till den lokala maskinen. Nu ska vi se hur vi kan lägga till flera filer och överföra dem genom ett Rsync-kommando. För att lägga till flera filer måste vi ange alla filsökvägar i kommandot.
rsync -vr /home/ubuntupit/Documents/To_check_rsync.txt /home/ubuntupit/Desktop/To_check_rsync_two.txt /home/ubuntupit/ rsync -vr /home/ubuntupit/Documents/To_check_rsync.txt /home/ubuntupit/Desktop/To_check_rsync_two.txt [email protected]:/home/ubuntupit/Backup
Perspektiv!
Eftersom Rsync-kommandot är skrivet i programmeringsspråket C och fungerar som en enkeltrådad applikation, kan detta verktyg enkelt kommunicera med Kernel och andra applikationer. I hela inlägget har vi sett Rsync-verktyget och exempel på Rsync-kommandot i Linux för att effektivt överföra filer över maskiner och servrar.
Du kan till och med synkronisera apache-servrar med Rsync-kommandot med korrekt konfiguration och kunskap. I vissa fall kan kommandot Rsync associeras med kommandot checksum som kan utföras oavsett om filen har ändrats eller inte. Om du är mer intresserad av Rsync kan du också prova GUI-baserat Rsync-verktyg.
Vänligen dela det med dina vänner och Linux-communityt om du tycker att det här inlägget är användbart och informativt. Vi rekommenderar också att du skriver dina åsikter om detta inlägg i kommentarsfältet.
