Rsync för Linux: synkronisera, kopiera och säkerhetskopiera filer
9 min läsning - 24 maj 2025

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:
| Flagg | Vad den gör |
|---|---|
-a | Arkivläge. Bevarar behörigheter, ägarskap, symboliska länkar och tidsstämplar. Motsvarar -rlptgoD. |
-v | Verbose. Visar en lista över filer som överförs. |
-z | Komprimera under överföring. Användbart på långsamma eller dyra anslutningar, mindre användbart på LAN eller för redan komprimerat innehåll. |
-P | Kombinerar --partial och --progress. Återuppta avbrutna överföringar, visa förloppet i realtid. |
--delete | Ta bort filer på mottagarsidan som inte finns på källsidan. Krävs för en äkta spegling. |
--exclude | Hoppa över filer som matchar ett mönster. |
--exclude-from=FILE | Läs undantagsmönster från en fil. Renare än att kedja ihop många --exclude flaggor. |
--dry-run | Visa vad som skulle hända om inget överfördes. |
--bwlimit=KBPS | Begränsa bandbreddsanvändningen i kilobyte per sekund. Användbart för säkerhetskopieringar som körs under arbetstid. |
--checksum | Jämför filer med hjälp av kontrollsumma istället för storlek och ändringstid. Långsammare men fångar upp gränsfall. |
-e ssh | Anvä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 /destinationEn 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:
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-hostEtt 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>&1Gör det körbart med
chmod +x.En cron-post för att köra det. Redigera med
crontab -e:0 2 * * * /usr/local/bin/rsync-backup.shDet 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
-aför arkivläge,-zför komprimering,-Pför återupptagning och förloppsindikering,--deletefö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.

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

Har du frågor eller behöver du en anpassad lösning?
Flexibla alternativ
Global räckvidd
Omedelbar driftsättning
Flexibla alternativ
Global räckvidd
Omedelbar driftsättning