Rsync

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

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.

Se även

  • cp - Kopiera filer och kataloger.
  • tar - Arkivera och extrahera filer.
  • scp - Kopiera filer över SSH.

Källor