Rsync
rsync - Synkronisera filer och kataloger
Kommandot `rsync` används för att synkronisera filer och kataloger mellan olika platser i ett Unix-liknande operativsystem. Det kan synkronisera filer lokalt och över nätverk.
Syntax
rsync [ALTERNATIV]... KÄLLA... DESTINATION
Beskrivning
Kommandot `rsync` är ett kraftfullt verktyg för att kopiera och synkronisera filer och kataloger. Det stöder många funktioner som inkrementella överföringar, bevarande av filattribut, komprimering under överföring och mycket mer. `rsync` är effektivt eftersom det endast kopierar de delar av filer som har ändrats.
Alternativ
Kommandot `rsync` stöder många alternativ som kan användas för att justera hur synkroniseringen utförs:
- -v, --verbose - Visa detaljerad information om processen.
- -q, --quiet - Visa ingen information om processen.
- -a, --archive - Arkiveringsläge; motsvarar -rlptgoD (rekursivt och bevarar filattribut).
- -r, --recursive - Kopiera kataloger rekursivt.
- -R, --relative - Använd relativa sökvägar.
- -b, --backup - Gör säkerhetskopior av varje befintlig målfil.
- --backup-dir=DIR - Ange katalog för säkerhetskopior.
- --suffix=SUFFIX - Ange suffix för säkerhetskopior.
- -u, --update - Kopiera inte filer som är nyare på målplatsen.
- --existing - Kopiera endast filer som redan finns på målplatsen.
- --ignore-existing - Kopiera inte filer som redan finns på målplatsen.
- --remove-source-files - Ta bort källfiler efter framgångsrik överföring.
- --delete - Ta bort filer som inte finns på källplatsen.
- --delete-before - Ta bort filer från målplatsen innan överföring.
- --delete-during, --del - Ta bort filer från målplatsen under överföring.
- --delete-after - Ta bort filer från målplatsen efter överföring.
- --ignore-errors - Ignorera IO-fel under borttagning av filer.
- --max-delete=NUM - Ange maximalt antal filer att ta bort.
- --partial - Behåll delvis överförda filer.
- --partial-dir=DIR - Ange katalog för delvis överförda filer.
- --delay-updates - Flytta alla uppdaterade filer till målplatsen samtidigt.
- -L, --copy-links - Följ symboliska länkar och kopiera filerna de pekar på.
- -l, --links - Kopiera symboliska länkar som symboliska länkar.
- --copy-unsafe-links - Kopiera symboliska länkar som pekar utanför källträd.
- --safe-links - Kopiera inte symboliska länkar som pekar utanför källträd.
- -H, --hard-links - Bevara hårda länkar.
- -p, --perms - Bevara filrättigheter.
- -E, --executability - Bevara filernas körbarhetsstatus.
- --chmod=MODES - Ange filrättigheter för målplatsen.
- -A, --acls - Bevara ACL-information.
- -X, --xattrs - Bevara utökade attribut.
- -o, --owner - Bevara filägarinformation (kräver superanvändarrättigheter).
- -g, --group - Bevara filgruppinformation.
- -D - Bevara enhetsfiler och specialfiler.
- -t, --times - Bevara tidsstämplar.
- -O, --omit-dir-times - Bevara inte katalogers tidsstämplar.
- --super - Använd superanvändarrättigheter för att bevara filägarinformation.
- -S, --sparse - Hantera glesa filer effektivt.
- -x, --one-file-system - Kopiera inte filer över filsystemgränser.
- -B, --block-size=SIZE - Ange blockstorlek för checksumma (standard är 700).
- -e, --rsh=COMMAND - Använd specifikt fjärrskalkommando.
- --rsync-path=PATH - Ange sökväg till rsync på fjärrsidan.
- --existing - Kopiera inte filer som inte redan finns på målplatsen.
- --ignore-existing - Kopiera inte filer som redan finns på målplatsen.
- --remove-source-files - Ta bort källfiler efter framgångsrik överföring.
- --delete - Ta bort filer som inte finns på källplatsen.
- --delete-before - Ta bort filer från målplatsen innan överföring.
- --delete-during, --del - Ta bort filer från målplatsen under överföring.
- --delete-after - Ta bort filer från målplatsen efter överföring.
- --ignore-errors - Ignorera IO-fel under borttagning av filer.
- --max-delete=NUM - Ange maximalt antal filer att ta bort.
- --partial - Behåll delvis överförda filer.
- --partial-dir=DIR - Ange katalog för delvis överförda filer.
- --delay-updates - Flytta alla uppdaterade filer till målplatsen samtidigt.
- -L, --copy-links - Följ symboliska länkar och kopiera filerna de pekar på.
- -l, --links - Kopiera symboliska länkar som symboliska länkar.
- --copy-unsafe-links - Kopiera symboliska länkar som pekar utanför källträd.
- --safe-links - Kopiera inte symboliska länkar som pekar utanför källträd.
- -H, --hard-links - Bevara hårda länkar.
- -p, --perms - Bevara filrättigheter.
- -E, --executability - Bevara filernas körbarhetsstatus.
- --chmod=MODES - Ange filrättigheter för målplatsen.
- -A, --acls - Bevara ACL-information.
- -X, --xattrs - Bevara utökade attribut.
- -o, --owner - Bevara filägarinformation (kräver superanvändarrättigheter).
- -g, --group - Bevara filgruppinformation.
- -D - Bevara enhetsfiler och specialfiler.
- -t, --times - Bevara tidsstämplar.
- -O, --omit-dir-times - Bevara inte katalogers tidsstämplar.
- --super - Använd superanvändarrättigheter för att bevara filägarinformation.
- -S, --sparse - Hantera glesa filer effektivt.
- -x, --one-file-system - Kopiera inte filer över filsystemgränser.
- -B, --block-size=SIZE - Ange blockstorlek för checksumma (standard är 700).
- -e, --rsh=COMMAND - Använd specifikt fjärrskalkommando.
- --rsync-path=PATH - Ange sökväg till rsync på fjärrsidan.
- --checksum - Kontrollera filers integritet med checksummor.
- --compress, -z - Komprimera data under överföring.
- --compress-level=NUM - Ange komprimeringsnivå (standard är 6).
- --skip-compress=LIST - Hoppa över komprimering av filer med specifika suffix.
- --stats - Visa detaljerad överföringsstatistik.
- --human-readable - Visa filstorlekar i mänskligt läsbart format.
- --progress - Visa överföringsframsteg.
- -P - Kortform för --partial --progress.
- --password-file=FILE - Läs lösenord från filen FILE.
- --port=PORT - Anslut till specifik port på fjärrsidan.
- --timeout=SECONDS - Avsluta om ingen aktivitet sker inom den angivna tiden.
- --contimeout=SECONDS - Avsluta om ingen anslutning sker inom den angivna tiden.
- --address=ADDRESS - Ange specifik källadress att använda.
- --blocking-io - Använd blockerat IO för fjärrskal.
- --temp-dir=DIR - Använd temporär katalog DIR.
- --use-backup-dir - Använd säkerhetskopieringskatalog.
- --itemize-changes - Lista alla ändringar som görs på filer och kataloger.
- --out-format=FORMAT - Ange format för utdata.
- --log-file=FILE - Skriv loggutdata till filen FILE.
- --log-file-format=FORMAT - Ange format för loggutdata.
- --bwlimit=RATE - Begränsa bandbredden till RATE KB/s.
- --write-batch=FILE - Skriv batch-filer för senare synkronisering.
- --read-batch=FILE - Läs batch-filer för synkronisering.
- --protocol=NUM - Använd specifik rsync-protokollversion.
- --checksum-seed=NUM - Ange checksummafrö.
Exempel
Här är några praktiska exempel som visar hur du kan använda `rsync`-kommandot:
- För att synkronisera en lokal katalog till en annan lokal katalog:
rsync -avh /src/katalog /dest/katalog
- För att synkronisera en lokal katalog till en fjärrdator:
rsync -avh /src/katalog användare@fjarrexempel.com:/dest/katalog
- För att synkronisera en fjärrdator till en lokal katalog:
rsync -avh användare@fjarrexempel.com:/src/katalog /dest/katalog
- För att visa framsteg under överföring:
rsync -avh --progress /src/katalog /dest/katalog
- För att ta bort filer från målplatsen som inte längre finns på källplatsen:
rsync -avh --delete /src/katalog /dest/katalog
- För att komprimera data under överföring:
rsync -avhz /src/katalog /dest/katalog
- För att använda en specifik SSH-port:
rsync -avh -e "ssh -p 2222" /src/katalog användare@fjarrexempel.com:/dest/katalog
- För att bevara hårda länkar under överföring:
rsync -avhH /src/katalog /dest/katalog
Skillnader mellan macOS och Linux
Det finns några viktiga skillnader att tänka på när man använder `rsync`-kommandot på macOS jämfört med Linux:
- Standardinstallationer: `rsync` är vanligtvis förinstallerat på både macOS och Linux. På macOS kan det dock vara en äldre version, och det kan vara fördelaktigt att installera en nyare version via Homebrew (`brew install rsync`).
- Alternativ och funktioner: Medan grundläggande funktioner i `rsync` är liknande på båda plattformarna, kan vissa alternativ och funktioner variera beroende på versionen av `rsync`. Det är bra att kontrollera `rsync --version` och `man rsync` för att se vilka alternativ som är tillgängliga.
- Filhantering: Sökvägar och filsystembeteenden kan skilja sig mellan macOS och Linux, särskilt när det gäller hantering av metadata, symboliska länkar och utökade attribut. Detta kan påverka hur `rsync`-operationer utförs och vilka alternativ som är mest användbara.
Det är alltid bra att konsultera `man`-sidan för `rsync` på din specifika plattform för att se vilka alternativ och funktioner som är tillgängliga och hur de används.
Felsökning
Om du får ett felmeddelande när du använder `rsync`, kontrollera följande:
- Att käll- och målvägarna är korrekta och tillgängliga.
- Att du har nödvändiga rättigheter för att läsa från källplatsen och skriva till målplatsen (vissa operationer kräver root-rättigheter).
- Att syntaxen för ditt kommando är korrekt. Kontrollera att du använder rätt alternativ och parametrar.
- Att nätverksanslutningen fungerar om du synkroniserar över nätverk.
- Kontrollera loggutdata för specifika felmeddelanden och åtgärda dem därefter.