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

Sidslut

Det här är en maskinöversättning av linux kommando manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webserver.