- 1. Hoe rsync . te gebruiken
- 2. Hoe rsync . te installeren
- 3. Kopieer bestanden en kopieer mappen met rsync
- 4. Kopieer of synchroniseer externe rsync-mappen of externe map
- 5. Rsync SSH hoe te gebruiken
- 6. Rsync toont voortgang van bestands- of mapoverdracht
- 7. rsync-mappen opnemen of uitsluiten
- 8. Rsync bestanden en mappen verwijderen
- 9. Rsync Beperk bestandsgrootte
- 10. Rsync verwijder bronbestanden als de overdracht succesvol was
- 11. Voer rsync uit zonder bestanden te beïnvloeden
- 12. Beperk rsync-bandbreedte
- 13. Back-up maken met Rsync
- 14. Andere Rsync-parameters
Het gebruik van commando's in Linux is meer dan natuurlijk, aangezien deze al vele jaren het hart van Linux zijn. gevaarlijk zijn als we ze niet correct beheren. Een van de meest functionele Linux-commando's is het rsync-protocol dat Solvetic u in deze tutorial in detail zal uitleggen. Laten we eerst kijken wat is rsync.
Momenteel kan het onderhouden van een infrastructuur van elke omvang zonder back-up als gek worden beschouwd, een schijf kan op elk moment falen en u kunt informatie verliezen die zo waardevol is als de boekhouding van het bedrijf. In dit bericht zullen we het hebben over het gebruik van Rsync, een van de beste tools voor back-ups op * nix-systemen. We zullen van de meest eenvoudige tot meer geavanceerde voorbeelden zien met scripts en voorbeelden die u in uw werkomgeving kunt toepassen. Het zal een handleiding zijn om te weten hoe je rysnc moet gebruiken.
De behoefte om dezelfde informatie op verschillende plaatsen te hebben is er een die steeds sterker wordt, dit omdat onze werkruimte variabel is en we onze tools altijd bij ons willen hebben of zelfs als back-upmaatregelen.
Wat is rsync?Het is een open source-tool voor het overbrengen van bestanden en mappen tussen de ene locatie en de andere. De voordelen ervan zijn voornamelijk gebaseerd op de compressie van de te verzenden informatie, het maakt de overdracht mogelijk via een SSH-kanaal en het draagt alleen de bestanden en stukjes bestanden over die zijn gewijzigd in plaats van het hele bestand opnieuw over te dragen, iets vergelijkbaar met wat er gebeurt bij het overbrengen van de verschillen in een bestand onder Git-versiebeheer.
De opdracht rsync (Remote Sync) is een opdracht die is ontwikkeld voor het kopiëren en synchroniseren van bestanden en mappen, op afstand of lokaal op Linux- of UNIX-systemen.
Met dit commando kunnen we kopieën maken van:
- lokaal
- Een externe shell gebruiken
- Via een externe rsync-daemon
Rsync gebruiktOnder de verschillende toepassingen voor rsync zijn de volgende:
- Geautomatiseerde back-ups naar externe servers of schijven.
- Externe synchronisatie van bestanden en mappen.
- Gemeenschappelijke bestandsoverdracht.
Rsync-voordelen
- Het is sneller dan scp (Secure Copy) omdat rsync een uploadprotocol gebruikt waarmee alleen het verschil tussen de bestanden kan worden overgedragen. De eerste keer dat het het hele bestand voor de tweede keer wordt overgedragen, worden alleen de wijzigingen die mogelijk bestaan, overgedragen.
- Het is ontworpen voor back-ups op afstand.
- Ondersteunt het kopiëren van alle bestandsrechten, bijvoorbeeld eigenaar, zachte groepen en harde koppeling.
- Gebruik minder bandbreedte door compressie te gebruiken tijdens het verzenden van bestanden.
Rsync heeft een delta-overdrachtsfunctionaliteit waarmee de hoeveelheid gegevens die via het netwerk wordt verzonden, kan worden verminderd, waardoor alleen de verschillen tussen de bronbestanden en de bestaande bestanden op de externe bestemming kunnen worden verzonden, daarom is rsync ideaal voor back-up en duplicatie.
Rsync zoekt naar bestanden die moeten worden overgedragen met behulp van een lqquick checkqq-algoritme, dat verantwoordelijk is voor het zoeken naar bestanden die op een of andere manier zijn gewijzigd.
Rsync-functiesEnkele van de belangrijkste kenmerken zijn:
- Integreert functies voor uitsluitingsopties vergelijkbaar met GNU tar
- Het heeft ondersteuning voor het kopiëren van Linux-links, apparaten, eigenaren, groepen en machtigingen
- Voeg een CVS-uitsluitingsmodus toe die het mogelijk maakt om dezelfde bestanden te negeren die CVS zou negeren in zijn functie
- Vereist geen superuser-privileges (root)
- We kunnen een externe shell gebruiken zoals ssh of rsh
- Biedt een pijplijn van bestandsoverdrachten om de netwerklatentiekosten te minimaliseren
- Ondersteunt geverifieerde of anonieme rsync-daemons
- Het is sneller dan scp
We gaan kijken hoe we rsync- en rsync-parameters kunnen gebruiken om taken uit te voeren zoals rsync, alleen nieuwe bestanden kopiëren of rsync doelbestanden verwijderen.
1. Hoe rsync . te gebruiken
De syntaxis voor het gebruik van deze opdracht is als volgt:
rsync opties bronbestemmingRsync-variabelenDoor deze syntaxis te gebruiken, kunnen we enkele variabelen toevoegen, zoals:
- -v: uitgebreide modus.
- -r: Deze optie kopieert de gegevens recursief zonder tijdstempels en toestemming achter te laten tijdens het proces.
- -a: bestandsmodus die recursief kopiëren van bestanden mogelijk maakt en symbolische links, bestandspermissies, gebruikers- en groepseigendom en tijdstempels behoudt.
- -z: Deze optie comprimeert de gegevens in het bestand.
- -h: door mensen leesbare modus, uitvoernummers in een door mensen leesbaar formaat.
Laten we nu enkele voorbeelden bekijken van het gebruik van deze opdracht. Aan het einde van de tutorial geeft Solvetic je andere parameters voor het gebruik van rsync op Linux.
2. Hoe rsync . te installeren
Stap 1
In de meeste huidige systemen is rsync standaard geïnstalleerd, maar als dat niet het geval is, kunnen we het volgende uitvoeren:
yum install rsync (Red Hat - CentOS - Fedora) apt-get install rsync (Debian - Ubuntu)
VERGROTEN
Stap 2
In ieder geval moeten we de installatie van rsync bevestigen, in sommige systemen zoals Ubuntu 20 is het al standaard:
3. Kopieer bestanden en kopieer mappen met rsync
Het eerste gebruik van rsync is om een bestand of map lokaal te kopiëren of te synchroniseren. Laten we eens kijken hoe je rsync-bestanden kopieert, mappen kopieert met rsync, en twee mappen synchroniseert met rsync.
Stap 1
Hiervoor zullen we het volgende uitvoeren:
rsync -zvh "bestand" "bestemming"
Stap 2
Daar kunnen we details zien zoals:
- Gegevens verzonden
- Hoeveelheid ontvangen gegevens
- Overdrachtssnelheid
- Totale grootte
Stap 3
Als het geval is om een map lokaal te kopiëren, zullen we het volgende uitvoeren:
rsync -zvh "map" "bestemming"
4. Kopieer of synchroniseer externe rsync-mappen of externe map
Stap 1
We kunnen bestanden lokaal kopiëren of synchroniseren naar een externe computer, hiervoor gebruiken we de volgende syntaxis:
rsync -avz bestand / [email protected]: / bestemming /
Stap 2
Telkens wanneer we het externe IP-adres gebruiken, moeten we het root-wachtwoord van de externe computer invoeren. Als we nu een externe map naar onze lokale server gaan kopiëren, gebruiken we de volgende syntaxis:
rsync -azvh [email protected]: / bestemming / map /
5. Rsync SSH hoe te gebruiken
SSH (Secure Shell) is een extra beveiligingsmechanisme voor gegevensoverdracht, dit wordt bereikt doordat SSH gebruik maakt van een beveiligde verbinding met sterk gestandaardiseerde encryptie.
Stap 1
Als we een lokaal bestand gaan kopiëren naar een externe computer met SSH, moeten we de "-e" optie gebruiken met de naam van het protocol dat u wilt gebruiken:
rsync -avzhe ssh [email protected]: / bestemming / map
Stap 2
Om een lokaal bestand naar een externe server te kopiëren, gebruiken we de volgende syntaxis:
rsync -avzhe ssh "bestand" [email protected]: / bestemming /
Stap 3
We kunnen in de externe map valideren dat het bestand of de map is gekopieerd:
VERGROTEN
6. Rsync toont voortgang van bestands- of mapoverdracht
Dit is een methode voor een beter overdrachtsbeheer, dit wordt bereikt met de parameter -progress:
rsync -avzhe ssh --progress / source [email protected]: / destination
7. rsync-mappen opnemen of uitsluiten
De opties -include en -exclude zijn opties waarmee we bestanden kunnen opnemen of uitsluiten, ze stellen ons ook in staat om de bestanden of mappen te specificeren die moeten worden opgenomen in de synchronisatie of bestanden en mappen uit te sluiten die niet mogen worden overgedragen.
Het gebruik ervan is als volgt:
rsync -avze ssh --include 'Letter *' --exclude '*' [email protected]: / bestemming
8. Rsync bestanden en mappen verwijderen
Als een bestand of map niet in de bron staat, maar al beschikbaar is in de bestemming, kunnen we dat bestand of die map verwijderen tijdens het synchronisatieproces, hiervoor kunnen we -delete gebruiken om de elementen te verwijderen die niet op de doelcomputer, zullen we het volgende uitvoeren:
rsync -avz --verwijder [email protected]: / bestemming
9. Rsync Beperk bestandsgrootte
Met de parameter -max-size kunnen we aangeven wat de maximale grootte is van de objecten die met rsync moeten worden overgedragen, dit helpt om de externe ruimte te besturen:
rsync -avzhe ssh --max-size = '300k' / source / [email protected]: / bestemming
10. Rsync verwijder bronbestanden als de overdracht succesvol was
Met de variabele -remove-source-files is het mogelijk dat de bestanden die in de source zijn gesynchroniseerd alleen worden geëlimineerd als het hele proces correct is verlopen, hiervoor gebruiken we het volgende. We zien dat het bronbestand is verwijderd.
rsync --remove-source-files -zvh "bestand" / bestemming /
11. Voer rsync uit zonder bestanden te beïnvloeden
Dit is een ideale optie voor mensen die de kracht van rsync niet volledig kennen, omdat het laat zien wat het commando zal doen, maar geen invloed heeft op de oorsprong, dit wordt bijvoorbeeld bereikt met de parameter -dry-run. We kunnen zien dat het bestand er nog steeds is.
rsync --dry-run --remove-source-files -zvh "bestand" / bestemming /
12. Beperk rsync-bandbreedte
Met de parameter -bwlimit is het mogelijk om te definiëren welke netwerksnelheid rsync moet gebruiken voor synchronisatietaken, dit wordt als volgt bereikt:
rsync --bwlimit = 200 -avzhe ssh / source / [email protected]: / bestemming
13. Back-up maken met Rsync
Soms moeten we een back-up maken van bepaalde informatie voordat we wijzigingen aanbrengen en in het geval van een fout bij het herstellen van Back-up, beginnen we met een laboratoriumback-up van de ene map naar de andere. Op deze manier maken we op een volledige en veilige manier een back-up met rsync.
Stap 1
We beginnen met te controleren of rsync is geïnstalleerd.
[gebruiker @ Solvetic ~] $ die rsync / usr / bin / rsyncStap 2
We zullen 2 mappen maken voor de bron en de bestemming van de bestanden.
mkdir {backup1, backup2}Stap 3
We maken meerdere bestanden aan in de map backup1, in dit geval maakt de grootte van de bestanden niet uit.
[gebruiker @ Solvetic ~] $ touch back-up1 / bestand {1… 75}Stap 4
De map moet 75 bestanden bevatten. Wij maken back-up.
[gebruiker @ Solvetic ~] $ ls backup1 / bestand1 bestand14 bestand19 bestand23 bestand28 bestand32 bestand37 bestand41 bestand46 bestand50 bestand55 bestand6 bestand64 bestand69 bestand73 bestand10 bestand15 bestand2 bestand24 bestand29 bestand33 bestand38 bestand42 bestand47 bestand51 bestand56 bestand60 bestand65 bestand7 bestand74 bestand11 bestand16 bestand20 bestand25 bestand3 bestand34 bestand39 bestand43 bestand48 bestand52 bestand57 bestand61 bestand66 bestand70 bestand75 bestand12 bestand17 bestand21 bestand26 bestand30 bestand35 bestand4 bestand44 bestand49 bestand53 bestand58 bestand62 bestand67 bestand71 bestand8 bestand13 bestand18 bestand22 bestand27 bestand31 bestand36 bestand40 bestand45 bestand5 bestand54 bestand59 bestand63 bestand68 bestand72 bestand9Stap 5
Om een back-up te maken van de bestanden naar backup2 gebruiken we. De bron moet eindigen op / anders zou het zijn map kopiëren en niet de inhoud.
rsync -r backup1 / backup2Stap 6
ALS we de backup2 invoeren, kunnen we de 75 bestanden zien, we kunnen zelfs verifiëren dat het 2 identieke mappen zijn met behulp van diff.
[gebruiker @ Solvetic ~] $ diff backup1 backup2Stap 7
In het geval van het maken van een softlink van een bestand in directory 1
ln -s bestand30 bestand100Stap 8
Het gebruik van rsync met -r zal de softlink die we in dit geval gebruiken niet synchroniseren. Als we naar deze tijd kijken, zullen we de softlink laten synchroniseren.
rsync -a backup1 / backup2OpmerkingAls we niet zeker weten wat we gaan ondersteunen, kunnen we een simulatie gebruiken met -n en in combinatie met -v kan het erg handig zijn.
[gebruiker @ Solvetic ~] $ rsync -anv backup1 / backup2 verzenden van incrementele bestandslijst verzonden 606 bytes ontvangen 12 bytes 1236,00 bytes / sec totale grootte is 6 versnelling is 0,01 (DRY RUN)
14. Andere Rsync-parameters
Zoals we al zeiden, zijn dit enkele van de extra parameters om te gebruiken met rsync op Linux:
Rsync-parameters
- -t, --times: wijziging van de tijd behouden
- -g, --group: groepen behouden
- -o, --owner: behoud de eigenaar van het object
- -B, --block-size = SIZE: forceer een vaste checksum blokgrootte
- T, --temp-dir = DIR: deze waarde creëert tijdelijke bestanden in de DIR-map
- z, --compress: comprimeer de bestandsgegevens tijdens de overdracht
- -4, --ipv4: gebruik alleen IPv4
- -6, --ipv6: gebruik alleen IPv6
Er zijn veel meer variabelen, maar deze zijn meer dan genoeg om het meeste uit rsync op Linux te halen. We hebben gezien hoe we rsync kunnen gebruiken met de handigste opties, samen met tools zoals cron- en bash-scripts, python hebben we alles wat we nodig hebben om onze back-ups te maken zonder de noodzaak van tools van derden.