Of je nu beheerder bent of gewone gebruiker, je hebt waarschijnlijk regelmatig back-ups nodig van je bestanden, of je wilt ze synchroniseren tussen meerdere systemen. Als je daarvoor telkens alle bestanden moet overschrijven, kost dat veel tijd en energie. Dat is precies waar de Linux Rsync-tool voor externe servers uitkomst biedt. In deze handleiding maak je kennis met de meest gebruikte Rsync-commando's, zodat je de snelle en veilige mogelijkheden ervan volledig kunt benutten.
Wat is het Rsync-hulpprogramma?
Externe synchronisatie (Rsync) is een bekend Linux/Unix-commando waarmee je bestanden en mappen kunt kopiëren en synchroniseren, zowel via externe toegang als lokaal. Met het Rsync-commando kun je allerlei databeheer-taken uitvoeren, zoals synchroniseren, kopiëren en back-ups maken. Daarnaast kun je een Linux-systeem spiegelen naar een ander systeem.
Het grote voordeel van Rsync voor externe servers is de snelle bestandsoverdracht: bij het verplaatsen van data tussen twee bronnen worden alleen de verschillen verwerkt. Met andere woorden, Rsync voorkomt dat je tijd verliest aan het blindelings overdragen van data - het kijkt uitsluitend naar wat er is veranderd tussen de twee Linux-systemen.
Waarom Rsync gebruiken?
Er zijn tal van back-uptools beschikbaar. De vraag is: wat maakt Rsync uniek ten opzichte van andere hulpprogramma's of commando's?
Je kunt bijvoorbeeld Bestandsoverdrachtprotocol (FTP) gebruiken voor een lokale kopie van je website, of SCP (Secure Copy Protocol) voor hetzelfde doel. Maar beide opties hebben nadelen. FTP versleutelt data niet, wat onwenselijk is. SCP heeft dat versleutelingsprobleem niet, maar is trager omdat het een tunnel opzet voor de overdracht.
Als alternatief voor beide problemen kun je Rsync gebruiken voor externe servers met sleutelgebaseerde versleuteling - ook wel Rsync SSH of Rsync over SSH genoemd. Dit voorkomt dat dubbele data wordt verzonden en maakt gebruik van een SSH-sleutel. Bovendien past Rsync compressie en decompressie toe bij het verzenden en ontvangen van data, wat het bandbreedtegebruik verlaagt.
Hoe installeer je Rsync?
Rsync staat waarschijnlijk al op je systeem, maar laten we het toch stap voor stap doornemen. Let op: SSH moet al geïnstalleerd zijn op zowel het bronsysteem als het doelsysteem, omdat we Rsync over SSH willen gebruiken.
Stap 1: SSH-versie controleren
Je kunt de versie van SSH controleren met de volgende opdracht:
ssh -V
Om te synchroniseren met een externe server via Rsync heb je een lokale server (de bron) en een externe server nodig. Zorg er ook voor dat de lokale server beheerdersrechten heeft (sudo).
Stap 2: Rsync installeren op Linux
Met de volgende opdracht installeer je Rsync op Ubuntu, Linux Mint en Debian:
sudo apt install rsync -y
Gebruik je een andere Linux-distributie, zoals Fedora, CentOS, AlmaLinux of Red Hat, voer dan de volgende opdracht uit om Rsync te installeren:
sudo dnf install rsync
Opmerking: apt is een pakketbeheerder die gebruikt wordt in op Debian gebaseerde distributies.
Stap 3: Rsync starten
Start Rsync en stel het in om automatisch te starten met de volgende opdrachten:
sudo systemctl start rsync
sudo systemctl enable rsync
Stap 4: De Rsync-installatie controleren
Voer de volgende opdracht uit om te controleren of Rsync correct is geïnstalleerd en welke versie actief is op je Linux-systeem:
rsync --version
In de volgende sectie bespreken we hoe je met dit hulpmiddel back-ups maakt via authenticatie op basis van sleutels.
Back-ups maken met Rsync via SSH
Incrementele back-ups maken is een van de toepassingen van Rsync via SSH. Bekijk de volgende opdracht om te begrijpen hoe dit werkt:
rsync -av -e ssh /sourceDir/ user@remote:/path/to/destinationDir
De bovenstaande opdracht synchroniseert sourceDir en destinationDir. Deze opdracht bevat ook andere opties die handig zijn om te kennen, zoals -a (archive) en -v (verbose). Let op dat -e ssh optie zorgt ervoor dat de Rsync-verbinding via het SSH-protocol verloopt.
Als je wilt dat de SSH-verbinding wordt geaccepteerd via een andere poort dan de standaard (poort 22), geef dan het poortnummer op na -e ssh. Bekijk de volgende opdracht om te zien hoe dit werkt.
rsync -av -e ssh 1998 sourceDir/ user@remote:/path/to/destinationDir
In de bovenstaande opdracht gebruiken we 1998 als SSH-poort in plaats van 22.
Rsync via SSH biedt nog meer nuttige opties. Zo kun je met de –partial optie een onderbroken overdracht hervatten. De voortgang van de huidige bestandsoverdracht volg je via de –progress optie. Linux Rsync ondersteunt ook beide functies tegelijk. Gebruik daarvoor de -p vlag op de opdrachtregel.
rsync -avP -e ssh /sourceDir/ user@remote:/path/to/destinationDir
Met de sleutelgebaseerde Rsync-opdracht kun je gegevens comprimeren voordat ze naar de bestemming worden overgedragen. Hoewel dit je CPU belast, is het toch nuttig: de bestandsoverdracht gaat sneller en verbruikt minder bandbreedte.
Met het Rsync-commando kun je bestanden en mappen kopiëren, zowel lokaal als op afstand. Het grote voordeel van Rsync is dat het gebruikmaakt van het delta transfer-algoritme, waardoor dubbele data niet opnieuw van bron naar bestemming worden gekopieerd. Zoals eerder vermeld, is dit precies wat Rsync zo nuttig maakt voor dagelijkse back-ups en systeemsynchronisatie. Laten we nu kijken hoe je Rsync gebruikt voor lokale toepassingen.
Rsync gebruiken voor lokale synchronisatie
Voordat we ingaan op lokale synchronisatie en hoe je Rsync daarvoor inzet, is het goed om de algemene structuur van een lokale Rsync-opdracht te kennen. Die ziet er als volgt uit:
rsync [options] [Source] [Destination]
Bestanden lokaal kopiëren
Stel dat je een bestand wilt synchroniseren of kopiëren vanuit de desktopmap (genaamd Cloudzy) naar /home/Public map; dit is het commando dat je moet invoeren:
rsync -zvh /desktop/Cloudzy/myfile.pdf /home/Public
Het bovenstaande Rsync-commando bevat drie opties: -zvh; door te gebruiken -z, wordt je bestand tijdens de overdracht gecomprimeerd. v optie staat voor uitgebreide uitvoer, en de h optie zorgt ervoor dat de uitvoer leesbaar is voor mensen, oftewel: de uitvoer wordt in een leesbaar formaat weergegeven.
Mappen lokaal kopiëren
Als je de desktopmap (genaamd Cloudzy) naar /home/Public map wilt kopiëren, voer je het volgende commando in:
rsync -zavh /desktop/Cloudzy/myfile.pdf /home/Public
De -a De optie in dit commando archiveert mappen en bestanden tijdens de synchronisatie.
Je kunt de lijst met mappen in de doelmap snel controleren om te verifiëren of de map daadwerkelijk is gekopieerd. Gebruik daarvoor het volgende commando:
ls -ld /home/Public
Bestanden en mappen recursief en lokaal synchroniseren (recursieve Rsync)
Wat als er meerdere mappen en bestanden in de /desktop/Cloudzystaan en je die recursief wilt kopiëren met het Linux Rsync-commando?
In dat geval gebruik je de -r optie om je lokale bestanden en mappen recursief te synchroniseren. Je kunt ook de archiefoptie (-a) gebruiken, omdat die ook geschikt is voor recursief kopiëren. Bekijk het volgende commando om vertrouwd te raken met recursieve Rsync-opdrachten.
rsync -zrvh /desktop/Cloudzy /home/Public
Or
rsync -zrvh /desktop/Cloudzy /home/Public
Mappen en bestanden van lokaal naar een externe server kopiëren
Naast de Linux Rsync-functionaliteit voor externe servers, die we in eerdere secties hebben besproken, kun je met dit veelgebruikte commando ook bestanden en mappen van een lokale machine naar een extern systeem synchroniseren.
Stel dat we een map willen kopiëren (/desktop/Cloudzy/nieuwemap) van de lokale machine naar het externe systeem (met 192.168.1.79) onder /mycpt; hier is een voorbeeld van hoe dit werkt:
rsync -zarvh /desktop/Cloudzy/newfolder [email protected]:/mycpt
Hoe kopieer je mappen zonder bestanden met Rsync?
Soms wil je Linux Rsync gebruiken om mappen zonder bestanden naar een externe server te kopiëren. Deze synchronisatie kan plaatsvinden van het externe systeem naar het lokale systeem, of andersom.
In dit artikel gebruiken we het externe systeem op 192.168.1.79. Stel dat we het hebben onder de map /mycpt map en we de /desktop/Cloudzy map van het lokale systeem willen kopiëren zonder de bijbehorende bestanden. Voer de onderstaande opdracht in om dit te doen:
rsync -av -f"+ */" -f"- *" /desktop/Cloudzy [email protected]:/mycpt/
Andere handige Rsync-opdrachten
Hier bespreken we een aantal aanvullende Linux Rsync-opdrachten die nuttig voor je kunnen zijn.
Maximale bestandsgrootte instellen voor overdracht in Rsync
Je kunt een maximale bestandsgrootte instellen voor overdracht met het Rsync-commando. Dit is handig wanneer je Rsync regelmatig gebruikt naar een externe server en een lokale machine, waarbij bandbreedte en tijd belangrijke factoren zijn. Bekijk het volgende commando om te leren hoe je groottelimieten instelt voor Rsync-bestandsoverdrachten:
rsync -avzhe ssh --max-size='100k' /desktop/Cloudzy [email protected]:/home/Public
Minimale bestandsgrootte instellen voor overdracht in Rsync
Net als het instellen van een maximale bestandsgrootte, kun je ook de minimale bestandsgrootte bepalen voor bestanden die je via Rsync naar de externe server wilt overdragen. In het onderstaande commando stellen we de minimale bestandsgrootte in op 10k:
rsync -avzhe ssh --min-size='10k' /desktop/Cloudzy [email protected]:/home/Public
Bronbestanden verwijderen na voltooide synchronisatie
Wanneer je klaar bent met het Rsync-commando, heb je de bestanden op het bronsysteem mogelijk niet meer nodig. In dat geval kun je het onderstaande Linux Rsync-commando gebruiken om de bronbestanden te verwijderen:
rsync --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
Proefuitvoering
Als je nieuw bent met de Linux Rsync-tool en nog niet vertrouwd bent met de opties, is een testrun een goede manier om te beginnen. Bij een proefuitvoering met Rsync worden er geen bestanden gewijzigd, maar zie je wel de uitvoer van het commando. Wanneer je zeker weet dat je het commando wilt uitvoeren, kun je de –dry-run optie verwijderen en het commando uitvoeren in de terminal. Bekijk het volgende commando voor meer informatie over de proefuitvoering.
rsync --dry-run --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
Samenvatting: Linux Rsync-opdrachten gebruiken
In dit artikel is uitgelegd hoe je Linux Rsync kunt gebruiken voor uiteenlopende toepassingen, waaronder het synchroniseren naar een externe server en een lokale server systeemspiegeling, het maken van back-ups van bestanden, en het lokaal en op afstand kopiëren van bestanden en mappen op een efficiënte manier. Dit bekende Linux-commando maakt snelle bestandsoverdracht mogelijk en biedt ondersteuning voor SSH en gegevenscompressie.
Kies een economy of premium Linux VPS voor het hosten van je website of remote desktop, tegen de scherpste prijs. VPS draait op Linux KVM voor hogere efficiëntie en maakt gebruik van krachtige hardware met NVMe SSD-opslag voor maximale snelheid.
Meer lezenHaal het maximale uit dit besturingssysteem met een Linux VPS oplossing van Cloudzy, met KVM-gebaseerde hostingplannen. We bieden hoogwaardige VPS-diensten met 99,95% uptime, stabiliteit, minimale latency, datacenters wereldwijd (12 locaties), ultrasnelle SSD-opslag en 24/7 technische ondersteuning. Je kunt je Linux VPS starten vanaf $4,95 en opschalen wanneer je een uitgebreidere oplossing nodig hebt.
Veelgestelde vragen
Welke TCP-poort gebruikt Rsync?
SSH gebruikt standaard poort 22. Wanneer je rsync via SSH gebruikt, werkt het dus op deze poort. Bij gebruik van de Rsync-daemon wordt poort 873 gebruikt.
Wat is Rsync?
Rsync is een Linux-hulpprogramma waarmee je bestanden en mappen lokaal of op afstand kunt synchroniseren. Met het Rsync-commando voer je allerlei gegevensgerelateerde taken uit, zoals synchroniseren, kopiëren en het maken van back-ups.