De opdracht Rsync (synchronisatie op afstand) is een Linux/Unix-hulpprogramma dat wordt gebruikt om bestanden en mappen lokaal of op afstand te synchroniseren en te kopiëren. De meeste Linux-nerds gebruiken Rsync om gegevens te spiegelen, back-uppen of migreren tussen mappen, schijven en netwerken. Een opvallend kenmerk van het Rsync-commando is dat het het "delta-overdrachtsalgoritme" gebruikt.”
Het Delta Transfer-algoritme werkt door de bestemmingsmap bij te werken met de inhoud van de bronbestemming. Als er een wijziging of een nieuw bestand wordt gemaakt in de bronmap, wordt alleen de specifieke wijziging gekopieerd naar de doelmap wanneer u de opdracht Rsync uitvoert. Om bestanden en mappen tussen de lokale en een externe machine te synchroniseren, maakt Rsync gebruik van SSH.
Rsync installeren in Linux
De opdracht Rsync is vooraf geïnstalleerd in de meeste Linux-besturingssystemen. Dit is echter mogelijk niet het geval voor sommige minimale installaties. U kunt Rsync installeren door de onderstaande opdrachten in een terminal uit te voeren:.
Op CentOS & RHEL
yum installeer rsync -y
Op Ubuntu en andere Debian-distributies
sudo apt installeer rsync -y
Rsync Basic-syntaxis
rsync opties bronbestemming
Enkele van de standaardopties/parameters die worden gebruikt met de Rsync-opdracht:
-v: -uitgebreide uitgebreide uitvoer
-r: kopieert gegevens recursief
-z: bestandsgegevens comprimeren
-h: Geeft uitvoer in een door mensen leesbaar formaat
-a: bestanden en directory archiveren tijdens het synchroniseren
-voortgang Toont de voortgang van de Rsync-taken die momenteel worden uitgevoerd.
U kunt alle beschikbare opties voor het Rsync-commando zien met behulp van de "-help" optie.
$ rsync --help
Top 20 Rsync-voorbeelden in Linux
Laten we, met die gedetailleerde informatie in gedachten, beginnen met 20 handige Rsync-voorbeeldopdrachten die u kunt gebruiken met Linux-systemen. Ons favoriete besturingssysteem is Ubuntu 20.04 LTS; de syntaxis zou echter ook moeten werken voor andere Linux-distributies waarop Rsync is geïnstalleerd.
1. Kopieer/Sync bestanden lokaal met -v (uitgebreide) optie
Dat is het meest elementaire Rsync-commando, zelfs voor een nieuweling. In dit voorbeeld zullen we bestanden kopiëren tussen de 'Origineel' map op het bureaublad naar de 'Back-up' map in de '/etc.' map. We zullen de -v (Uitgebreide) optie toevoegen zodat rsync informatie kan geven over wat er aan de hand is.
rsync -v Origineel/
Een ding om op te merken met Rsync is dat, als de doelmap niet bestaat, deze deze automatisch zal maken. Laten we het onderstaande voorbeeld bekijken waar we bestanden naar de map willen kopiëren “foss"dat bestaat niet".
2. Sync/Kopieer bestanden en mappen recursief met -r optie
In de bovenstaande opdracht, als er een map aanwezig was in de 'Origineel' map, wordt deze overgeslagen. Dat wordt geïllustreerd in de afbeelding hieronder.
Om dit te verhelpen, gebruikt u de -r (recursieve) optie.
3. Bestanden synchroniseren/kopiëren tussen de lokale machine en de externe machine
Voordat u deze taak uitvoert, zijn er verschillende parameters die u moet weten over de externe server/machine: het IP-adres, de gebruikersnaam en het gebruikerswachtwoord.
De basissyntaxis die we zullen gebruiken is:
rsync [opties] [bestanden] [externe gebruikersnaam]@[ip-adres]:/[bestemming]
Laten we bestanden kopiëren van onze 'Origineel' map op het bureaublad naar een externe server.
4. Synchroniseer/kopieer bestanden en mappen van een externe server naar uw lokale pc
Net als bij het vorige commando, moeten we het IP-adres van de externe server weten. In dit voorbeeld zullen we bestanden synchroniseren in de 'Back-up' map in de thuismap van de server naar onze lokale pc.
rsync -rv [email protected]:/home/tuts/Back-up /home/tuts/Desktop/Origineel
5. Gebruik Rsync over SSH met de -e optie
Om de veiligheid van bestanden en mappen te garanderen, gebruiken we het Rsync over Secure Shell Protocol (SSH). Bovendien zal SSH bij het verstrekken van het root-/gebruikerswachtwoord coderingsservices leveren, zodat ze veilig zijn.
Om SSH te gebruiken, voegen we de -e optie toe die het protocol specificeert dat we willen gebruiken.
rsync -vre ssh Origineel/* [email protected]:/home/tuts
6. Voortgang weergeven met Rsync-opdracht
In situaties waarin u meerdere bestanden of een enorm bestand kopieert, zou het efficiënt zijn om de voortgang te kennen. Gelukkig beschikt rsync over deze optie -de '-vooruitgang' keuze.
sudo rsync -rv --progress Origineel/* /etc/Foss
7. Gebruik Rsync met de optie '-include'
Er zijn situaties waarin u alleen bepaalde bestanden wilt synchroniseren. Met het Rsync-commando veroorzaakt u de '-omvatten' optie om de taak uit te voeren. In dit voorbeeld synchroniseren we alleen bestanden die beginnen met de letter 'I'.
sudo rsync -vr --include 'I*' Original/ /etc/Backup/
8. Gebruik Rsync met de optie '-exclude' om bepaalde bestanden te negeren
Met de Rsync'-uitsluiten' optie, kunt u bestanden uitsluiten die u niet wilt synchroniseren/kopiëren. In dit voorbeeld willen we alle bestanden negeren die beginnen met de letter 'I'.
sudo rsync -vr --exclude 'I*' Origineel/ /etc/Backup/
Als alternatief kunt u beide opties in één opdracht gebruiken. Zie het voorbeeld hieronder.
sudo rsync -vr --exclude '*' --include 'I*' Original/ /etc/Backup/
We sluiten alle bestanden uit, behalve bestanden die beginnen met de letter 'I.'
9. Gebruik Rsync met -delete commando
Er zijn situaties waarin er bestanden aanwezig zijn in de doelmap, maar niet in de bronmap. Voor synchronisatie is het het beste om dergelijke bestanden eerst uit de doelmap te verwijderen. Gelukkig komt Rsync met de '-verwijderen' optie, die dit automatisch doet.
Als een bestand aanwezig is in de doelmap maar niet in de bron, wordt het verwijderd.
rsync -vr --delete /etc/Backup/ [email protected]:/home/tuts/Back-up
10. Stel de maximale grootte van bestanden in om over te zetten met Rsync
Als u zich zorgen maakt over opslagruimte of bandbreedte voor bestandssynchronisatie op afstand, moet u de optie '-max-size' gebruiken met het Rsync-commando. Met deze optie kunt u de maximale grootte instellen van een bestand dat kan worden gekopieerd.
Bijvoorbeeld een '-max-grootte=100k' zal alleen gegevens overdragen die gelijk zijn aan of kleiner zijn dan 100 kilobytes.
rsync -vr --max-size='200k' /etc/Backup/ [email protected]:/home/tuts/Back-up
11. Bronbestanden automatisch verwijderen na een succesvolle overdracht
Neem een situatie waarin u een externe back-upserver en een back-upmap op uw pc hebt. U maakt een back-up van gegevens naar de back-upmap op uw pc voordat u deze synchroniseert met de back-upserver. Na elke synchronisatie moet u de gegevens in de back-upmap verwijderen.
Gelukkig kunt u dit automatisch doen met de '--verwijder-bronbestanden' keuze.
Door een 'ls'-opdracht uit te voeren in de bronmap, bevestigen we dat de bestanden inderdaad zijn verwijderd.
12. Voer een droge run uit met Rsync
Voor nieuwelingen die niet zeker zijn van het Rsync-commando, kun je de inhoud van je bestemmingsmap verknoeien, en ongedaan maken kan net zo vervelend zijn. Met de '-oefening' optie, het Rsync-commando geeft u een uitvoer van wat er zal worden uitgevoerd, maar het zal het niet doen.
Daarom kunt u naar deze uitvoer kijken als dit is wat u verwacht voordat u de '-oefening' keuze.
rsync -vr --dry-run Origineel/* [email protected]:/home/tuts/Back-up
13. Bandbreedtelimiet instellen die vereist is om bestanden over te zetten.
Als u zich op een gedeeld netwerk bevindt of meerdere programma's uitvoert die een internetverbinding nodig hebben, zou het efficiënt zijn om een bandbreedtelimiet in te stellen die vereist is om bestanden op afstand te synchroniseren/kopiëren. We kunnen dit doen met de Rsync'-bwlimit' keuze.
Dit tarief wordt berekend in kilobytes. Dus wanneer '-bwlimiet=1000' betekent dat er slechts 1000Kb per seconde kan worden overgedragen.
rsync -vr --bwlimit=1000 Origineel/* [email protected]:/home/tuts/Back-up
14. Synchroniseer de hele bestanden met Rsync
Standaard synchroniseert Rsync alleen de gewijzigde blokken en bytes. Als u dus eerder een tekstbestand had gesynchroniseerd en later tekst aan het bronbestand hebt toegevoegd tijdens het synchroniseren, wordt alleen de ingevoegde tekst gekopieerd. Als je het hele bestand opnieuw wilt synchroniseren, moet je de '-W'-optie gebruiken.
rsync -vrW Origineel/* [email protected]:/home/tuts/Back-up
15. Gewijzigde bestanden niet synchroniseren/kopiëren in de doelmap
Er zijn situaties waarin u wijzigingen hebt aangebracht in bestanden die aanwezig zijn in de doelmap. Als u een Rsync-opdracht uitvoert, worden deze wijzigingen overschreven door die in het bronbestand. Om dit te vermijden, gebruik de '-u' optie.
rsync -vu Origineel/* [email protected]:/home/tuts/Back-up
16. Gebruik Rsync met -i optie om het verschil in bestanden tussen bron en bestemming te zien
Als u wilt weten welke nieuwe wijzigingen er in de doelmap zullen worden aangebracht, gebruik dan de '-i'-optie, die het verschil in bestanden tussen de bron- en doelmap laat zien.
rsync -avzi Origineel/ Back-up/
Vorm de uitvoer in de afbeelding hierboven en we zien een bestand met de naam 'heloo.py' niet aanwezig in de doelmap. Laten we eens kijken naar enkele van deze parameters.
d: toont een wijziging in het doelbestand
f: staat voor een bestand
t: toont een verandering in tijdstempels
s: geeft een wijziging in de grootte van een bestand aan
17. Gebruik Rsync om alleen de directorystructuur te kopiëren
U kunt Rsync gebruiken om alleen de mapstructuur te synchroniseren als u niet geïnteresseerd bent in de bestanden. We zullen de parameters -f”+ */” -f”- *” voor de brondirectory moeten gebruiken.
rsync -av -f"+ */" -f"- *" /home/tuts/Desktop/Original/ /home/tuts/Documents/
18. Datumstempel toevoegen aan directorynaam
Als u wilt bijhouden wanneer overdrachten hebben plaatsgevonden zonder mapeigenschappen te openen, kunt u eenvoudig een datum toevoegen aan een mapnaam. Dat zal een datumstempel toevoegen aan alle synchronisaties die u doet met Rsync.
Om dit te doen, zullen we toevoegen $(datum +\\%Y-\\%m-\\%d) naar de doelmap.
sudo rsync -rv Original/ /etc/$(date +\\%Y-\\%m-\\%d)
19. Kopieer een enkel bestand lokaal
Om een enkel bestand te synchroniseren/kopiëren met Rsync, moet u het bestandspad specificeren gevolgd door het doelmappad.
rsync -v Origineel/heloo.py Back-up/
20. Meerdere bestanden op afstand kopiëren
Om meerdere bestanden tegelijk te kopiëren, moet u het pad naar alle bestanden opgeven. Deze methode is efficiënt voor slechts een klein aantal bestanden.
rsync -vr /home/tuts/Desktop/Origineel/heloo.py /home/tuts/Desktop/Backup/index.html [email protected]:/home/tuts/Back-up
Dat is alles over de top 20 handige Rsync-voorbeelden waarmee u bestanden en mappen zowel lokaal als op afstand kunt synchroniseren. Voel je vrij om je feedback en opmerkingen hieronder achter te laten.