Overzicht
rsync bespaart netwerkbandbreedte door alleen gewijzigde bestanden over te dragen en stelt u in staat om de over te dragen bestanden/mappen nauwkeurig te regelen via de `--include`- en `--exclude`-opties. `--include` neemt specifieke patronen op, en `--exclude` sluit specifieke patronen uit. De volgorde van deze twee opties is belangrijk.
Belangrijkste kenmerken
- Incrementele overdracht: efficiënt door alleen gewijzigde bestanden over te dragen
- Externe synchronisatie: mogelijk om te synchroniseren met externe servers via SSH, etc.
- Flexibele filtering: nauwkeurige controle over overdrachtsobjecten met `--include`- en `--exclude`-opties
- Attribuutbehoud: behoudt verschillende attributen zoals bestandsrechten, eigendom, tijdstempels
Belangrijkste opties
Dit zijn de belangrijkste opties die vaak worden gebruikt in combinatie met de `--include`-optie van rsync.
Filteropties
Standaard gedrag en efficiëntieopties
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`rsync` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Gebruiksvoorbeelden
Voorbeelden van verschillende synchronisatiescenario's met de `--include`-optie van rsync.
Synchroniseren door alleen bestanden met specifieke extensies op te nemen
rsync -av --include='*.txt' --exclude='*' src/ dest/
Synchroniseert alleen bestanden met de extensie '.txt' van de 'src'-map in de huidige map naar de 'dest'-map. Alle andere bestanden worden uitgesloten.
Synchroniseren door alleen specifieke mappen op te nemen
rsync -av --include='data/***' --exclude='*' src/ dest/
Synchroniseert de 'data/' map en al zijn inhoud van de 'src'-map naar de 'dest'-map. Alle andere bestanden/mappen worden uitgesloten.
Synchroniseren door meerdere patronen op te nemen/uit te sluiten
rsync -av --exclude='*.log' --include='report/***' --include='*.txt' --exclude='*' src/ dest/
Sluit '.log'-bestanden uit van 'src', en synchroniseert de 'report/' map en '.txt'-bestanden naar 'dest'. De resterende bestanden worden uitgesloten.
Test inclusie/exclusie regels met dry run
rsync -avn --include='*.txt' --exclude='*' src/ dest/
Controleert hoe filterregels worden toegepast zonder daadwerkelijke synchronisatie. Dit commando geeft alleen weer welke bestanden worden overgedragen.
Alleen specifieke bestanden van een externe server ophalen
rsync -av --include='*.conf' --exclude='*' user@remote_host:/remote/path/ ./local/path/
Haalt alleen '.conf'-bestanden van '/remote/path/' op de externe server op naar './local/path/' lokaal.
Tips & Aandachtspunten
Tips en aandachtspunten voor het effectief gebruiken van de `--include`- en `--exclude`-opties van rsync.
Belang van de volgorde van filterregels
De `--include`- en `--exclude`-opties worden verwerkt in de volgorde waarin ze op de opdrachtregel verschijnen. De eerste overeenkomende regel heeft voorrang. Daarom is het gebruikelijk om specifiekere regels eerst en algemenere regels later te plaatsen.
- Voorbeeld 1: `--include='specific_file' --exclude='*'` (neemt alleen specifieke bestanden op en sluit de rest uit)
- Voorbeeld 2: `--exclude='*.tmp' --include='*'` (neemt alle bestanden op, maar sluit .tmp-bestanden uit)
Wildcards en patroonovereenkomst
Verschillende wildcards kunnen worden gebruikt voor patroonovereenkomst.
- `*`: Elke tekenreeks (niet over mapgrenzen heen)
- `?`: Enkel teken
- `[chars]`: Eén van de tekens tussen de haakjes
- `***`: Elke tekenreeks die mapgrenzen overschrijdt (recursieve overeenkomst)
Betekenis van slash (/)
De werking kan variëren afhankelijk van of er een slash aan het einde van het patroon staat.
- `dir/`: Is van toepassing op de map 'dir' zelf en al zijn inhoud.
- `file_or_dir`: Is van toepassing op zowel bestanden als mappen met de naam 'file_or_dir'.
Gebruik van Dry Run (`-n`)
Bij het gebruik van complexe filterregels is het altijd raadzaam om de `-n` of `--dry-run`-optie te gebruiken om de verwachte resultaten te controleren voordat de daadwerkelijke synchronisatie plaatsvindt. Dit is essentieel om onbedoelde bestandsverwijdering of -opname te voorkomen.