Rsync: Skillnad mellan sidversioner
Admin (diskussion | bidrag) Ingen redigeringssammanfattning |
Admin (diskussion | bidrag) Ingen redigeringssammanfattning |
||
Rad 1: | Rad 1: | ||
= | == 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. | |||
rsync | === 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: | |||
<code> | |||
rsync -avh /src/katalog /dest/katalog | |||
</code> | |||
* För att synkronisera en lokal katalog till en fjärrdator: | |||
<code> | |||
rsync -avh /src/katalog användare@fjarrexempel.com:/dest/katalog | |||
</code> | |||
* För att synkronisera en fjärrdator till en lokal katalog: | |||
<code> | |||
rsync -avh användare@fjarrexempel.com:/src/katalog /dest/katalog | |||
</code> | |||
rsync | * För att visa framsteg under överföring: | ||
<code> | |||
rsync -avh --progress /src/katalog /dest/katalog | |||
</code> | |||
* För att ta bort filer från målplatsen som inte längre finns på källplatsen: | |||
<code> | |||
rsync -avh --delete /src/katalog /dest/katalog | |||
</code> | |||
< | * För att komprimera data under överföring: | ||
rsync - | <code> | ||
</ | rsync -avhz /src/katalog /dest/katalog | ||
</code> | |||
* För att använda en specifik SSH-port: | |||
<code> | |||
rsync -avh -e "ssh -p 2222" /src/katalog användare@fjarrexempel.com:/dest/katalog | |||
</code> | |||
För att | * För att bevara hårda länkar under överföring: | ||
<code> | |||
rsync -avhH /src/katalog /dest/katalog | |||
</code> | |||
=== 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 === | |||
rsync | 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 === | |||
* [https://www.gnu.org/software/coreutils/manual/coreutils.html GNU coreutils manual] | |||
* [https://man7.org/linux/man-pages/man1/rsync.1.html rsync manual (Linux)] | |||
* [https://ss64.com/osx/rsync.html rsync manual (macOS)] | |||
[[Kategori:Linuxkommandon]] | |||
[[Kategori: |
Versionen från 26 maj 2024 kl. 09.37
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.