Rsync för Linux: synkronisera, kopiera och säkerhetskopiera filer

9 min läsning - 24 maj 2025

hero section cover
Innehållsförteckning
  • Rsync för Linux: hur man synkroniserar, kopierar och säkerhetskopierar filer som ett proffs
  • Vad är rsync?
  • Varför använda rsync istället för cp eller scp
  • Vanliga rsync-flaggor
  • Exempel på rsync
  • Automatisera rsync med cron
  • Slutkommentarer
Dela

Så här använder du rsync på Linux för inkrementella överföringar, fjärrsynkronisering via SSH, schemalagda säkerhetskopior med cron och undviker trailing-slash-fällan.

Rsync för Linux: hur man synkroniserar, kopierar och säkerhetskopierar filer som ett proffs

Rsync är standardverktyget för att kopiera filer mellan Linux-system. Det är snabbare än cp eller scp för allt du kör mer än en gång, återhämtar sig från nätverksavbrott och överför endast det som faktiskt har ändrats. Det här inlägget täcker vad rsync gör, de flaggor som är värda att känna till, de exempel du oftast kommer att använda och hur du schemalägger det med cron.


 

Vad är rsync?

Rsync är ett kommandoradsverktyg för att kopiera och synkronisera filer mellan olika platser. Det fungerar lokalt, via SSH till en fjärrvärd eller mot en rsync-daemon. Den viktigaste skillnaden jämfört med cp eller scp: rsync jämför först källan och målet och överför sedan endast skillnaderna. I en katalog på 100 GB där 200 MB har ändrats flyttar rsync 200 MB. cp och scp flyttar allt.

Det ingår i alla moderna Linux-distributioner. Om det saknas: apt install rsync eller dnf install rsync.

Varför använda rsync istället för cp eller scp

Tre skäl till varför rsync är bättre för alla icke-triviala kopieringar:

  • Det är inkrementellt. Efterföljande körningar överför endast de ändrade byten, inte hela filer. För säkerhetskopior och speglingar förvandlar det ett nattligt jobb till några minuter.
  • Det klarar av avbrott. Med --partialåterupptas en halvöverförd fil på 50 GB där den avbröts istället för att börja om från början.
  • Det bevarar metadata. Arkivläget (-a) behåller behörigheter, ägarskap, symboliska länkar och tidsstämplar. Avgörande för systemfiler, källkodsträd och allt där attribut spelar roll.

För engångskopior av små filer scp är det tillräckligt. För allt som upprepas, allt som kräver mycket bandbredd eller allt som du kanske behöver återuppta, använd rsync.

Vanliga rsync-flaggor

De flaggor du faktiskt kommer att använda:

FlaggVad den gör
-aArkivläge. Bevarar behörigheter, ägarskap, symboliska länkar och tidsstämplar. Motsvarar -rlptgoD.
-vVerbose. Visar en lista över filer som överförs.
-zKomprimera under överföring. Användbart på långsamma eller dyra anslutningar, mindre användbart på LAN eller för redan komprimerat innehåll.
-PKombinerar --partial och --progress. Återuppta avbrutna överföringar, visa förloppet i realtid.
--deleteTa bort filer på mottagarsidan som inte finns på källsidan. Krävs för en äkta spegling.
--excludeHoppa över filer som matchar ett mönster.
--exclude-from=FILELäs undantagsmönster från en fil. Renare än att kedja ihop många --exclude flaggor.
--dry-runVisa vad som skulle hända om inget överfördes.
--bwlimit=KBPSBegränsa bandbreddsanvändningen i kilobyte per sekund. Användbart för säkerhetskopieringar som körs under arbetstid.
--checksumJämför filer med hjälp av kontrollsumma istället för storlek och ändringstid. Långsammare men fångar upp gränsfall.
-e sshAnvänd SSH för överföringen. Implicit på de flesta moderna installationer.

Standardbeteendet jämför filstorlek och ändringstid, vilket är snabbt och nästan alltid korrekt. Byt till --checksum om en distributionsprocess skriver om tidsstämplar utan att ändra innehållet, eller om du misstänker korruption på bitnivå.

Exempel på rsync

Kopiera en katalog lokalt:

rsync -av /source/path/ /destination/path/

Synkronisera till en fjärrserver via SSH:

rsync -avz /local/dir/ user@remote:/remote/dir/

Testa innan du gör något destruktivt:

rsync -avz --dry-run /local/dir/ user@remote:/dir/

Spegla två kataloger, inklusive raderingar på målet:

rsync -av --delete /source/ /destination/

Uteslut loggar och en temporär katalog:

rsync -av --exclude='*.log' --exclude='tmp/' /src/ /dest/

Återuppta en stor överföring som kan bli avbruten:

rsync -avP user@remote:/backups/big.img /local/

Om SSH-sessionen bryts, kör samma kommando igen. Med -Prsync fortsätter där den slutade istället för att börja om från början.

Begränsa bandbredden till 50 MB/s för en säkerhetskopiering utanför rusningstid så att den inte mättar upplänken:

rsync -avz --bwlimit=50000 /local/dir/ user@remote:/dir/

Fällan med den avslutande snedstrecket

Det vanligaste misstaget med rsync:

rsync -av /source  /destination/    # copies the 'source' directory INTO /destination
rsync -av /source/ /destination/    # copies the CONTENTS of /source into /destination

En avslutande snedstreck på källan betyder "allt i den här katalogen". Ingen avslutande snedstreck betyder "själva den här katalogen". Kör med --dry-run först om du är osäker, särskilt i kombination med --delete.

Automatisera rsync med cron

För schemalagda säkerhetskopieringar behöver du tre saker:

  1. Lösenordsfri SSH-åtkomst till destinationen. Cron-jobb kan inte skriva in lösenord. Skapa en nyckel och kopiera den till säkerhetskopieringsvärden:

    ssh-keygen -t ed25519
    ssh-copy-id user@backup-host
  2. Ett skript, inte en enradare i crontab. Lättare att testa, lättare att logga:

    #!/bin/bash
    LOG=/var/log/rsync-backup.log
    rsync -az --delete /etc/ user@backup:/backups/$(hostname)/etc/ >> "$LOG" 2>&1

    Gör det körbart med chmod +x.

  3. En cron-post för att köra det. Redigera med crontab -e:

    0 2 * * * /usr/local/bin/rsync-backup.sh

    Det kör skriptet varje natt kl. 02:00.

Två förbättringar som är värda att göra i produktion: linda in skriptet i flock så att ett långvarigt jobb inte överlappar nästa natts körning, och pipa utdata genom logger så att fel hamnar i systemloggen där övervakningen kan fånga upp dem.

Slutkommentarer

Rsync är ett av få Linux-verktyg där den tid man lägger på att lära sig flaggorna ger omedelbar avkastning. De viktigaste punkterna:

  • Inkrementella överföringar och stöd för återupptagning gör rsync till det rätta valet för allt du kör mer än en gång
  • -a för arkivläge, -z för komprimering, -P för återupptagning och förloppsindikering, --delete för äkta speglingar
  • Var uppmärksam på den avslutande snedstrecken i källvägen, särskilt med --delete
  • Kombinera det med cron och SSH-nycklar för automatiska schemalagda säkerhetskopieringar

För stora säkerhetskopieringsjobb som flyttar data mellan anläggningar innebär att köra rsync på en VPS med obegränsad bandbredd att säkerhetskopieringsfönstren inte begränsas av överföringsbegränsningar.

Blogg

Utvalda denna vecka

Fler artiklar
Digital ögonbelastning: Så skyddar du din syn i en värld där skärmar spelar en stor roll

Digital ögonbelastning: Så skyddar du din syn i en värld där skärmar spelar en stor roll

Stirrar du på skärmar hela dagen? Lär dig hur du kan minska digital ögonbelastning med beprövade tekniker och verktyg. Den här guiden är oumbärlig för distansarbetare, utvecklare och alla som arbetar inom teknikbranschen.

4 min läsning - 21 maj 2025

Varför det är viktigt att ha en kraftfull VPS utan datataks

8 min läsning - 9 maj 2025

Fler artiklar
background image

Har du frågor eller behöver du en anpassad lösning?

icon

Flexibla alternativ

icon

Global räckvidd

icon

Omedelbar driftsättning

icon

Flexibla alternativ

icon

Global räckvidd

icon

Omedelbar driftsättning