Szukasz najlepszego narzędzia do synchronizacji, kopii zapasowych lub migracji danych? Ten przewodnik porównuje cztery czołowe rozwiązania: rsync, rclone, Robocopy i Unison — z przykładami, tabelami, przypadkami użycia.
Spis treści
- Czym są narzędzia do synchronizacji plików i dlaczego mają znaczenie?
- rsync – klasyk synchronizacji w systemach Unix/Linux
- rclone – rsync dla chmury
- Robocopy – potężne narzędzie Microsoftu
- Unison – synchronizacja dwukierunkowa
- Szczegółowe porównanie: rsync vs rclone vs Robocopy vs Unison
- Kiedy użyć którego narzędzia? Tabela decyzyjna
- Przykłady użycia i gotowe komendy
- Bezpieczeństwo i szyfrowanie danych podczas synchronizacji
- Wydajność i benchmarki
- Integracja z automatyzacją i harmonogramami zadań
- Najczęstsze błędy i jak ich unikać
- Alternatywy i narzędzia uzupełniające
- Podsumowanie i rekomendacje
- FAQ – Najczęściej zadawane pytania
1. Czym są narzędzia do synchronizacji plików i dlaczego mają znaczenie?
Synchronizacja plików to proces polegający na utrzymywaniu spójności danych pomiędzy dwoma lub więcej lokalizacjami — lokalnym dyskiem, serwerem sieciowym, dyskiem zewnętrznym lub usługą chmurową. W erze, gdy dane generowane są w tempie eksabajtów dziennie, wybór odpowiedniego narzędzia do ich zarządzania przekłada się bezpośrednio na bezpieczeństwo, koszt operacyjny i produktywność.
Dlaczego warto używać dedykowanych narzędzi zamiast ręcznego kopiowania?
Ręczne kopiowanie plików metodą „przeciągnij i upuść” lub prostym cp/copy ma poważne ograniczenia:
- Brak delta transfer – kopiuje cały plik, nawet jeśli zmienił się tylko jeden bajt
- Brak weryfikacji integralności – nie sprawdza, czy plik dotarł bez uszkodzeń
- Brak obsługi konfliktów – przy zmianach po obu stronach nie wiadomo, która wersja jest „poprawna”
- Brak odporności na przerwy – przerwana operacja zostawia dane w niespójnym stanie
- Brak logowania – nie ma śladu, co zostało skopiowane, a co pominięte
Dedykowane narzędzia takie jak rsync, rclone, Robocopy i Unison rozwiązują każdy z tych problemów — każde na swój sposób i w innym ekosystemie.
Kto powinien czytać ten artykuł?
- Administratorzy systemów Linux, Windows i macOS
- DevOps i inżynierowie infrastruktury
- Twórcy skryptów automatyzacji backupu
- Użytkownicy domowi dbający o bezpieczeństwo danych
- Deweloperzy szukający narzędzi do synchronizacji środowisk
- Osoby migrujące dane między chmurami lub serwerami
2. rsync – Klasyk synchronizacji w systemach Unix/Linux
Historia i geneza rsync
rsync (Remote Sync) to narzędzie stworzone przez Andrew Tridgella i Paula Mackerra w 1996 roku. Jego fundamentem jest autorski algorytm delta transfer (znany też jako algorytm rsync), który zmienił sposób, w jaki świat informatyki podchodzi do synchronizacji plików.
Dziś rsync jest nieodłącznym elementem każdej dystrybucji Linuksa, dostępny jest również na macOS i — przez Cygwin lub WSL — na Windows.
Jak działa algorytm rsync?
Zamiast przesyłać całe pliki, rsync:
- Dzieli plik docelowy na bloki o stałej wielkości
- Oblicza sumę kontrolną (checksum) każdego bloku
- Przesyła te sumy do nadawcy
- Nadawca porównuje je ze swoją wersją pliku
- Przesyłane są tylko różniące się bloki (delty)
Efekt? Przy aktualizacji 1 GB pliku, w którym zmieniło się 10 KB, rsync przesyła tylko te 10 KB — a nie gigabajt od nowa.
Instalacja rsync
Linux (Debian/Ubuntu):
sudo apt update && sudo apt install rsync
Linux (RHEL/CentOS/Fedora):
sudo dnf install rsync
macOS (przez Homebrew):
brew install rsync
Windows (przez WSL2):
# Po zainstalowaniu WSL2 z Ubuntu
sudo apt install rsync
Składnia i najważniejsze flagi rsync
Podstawowa składnia:
rsync [opcje] źródło cel
Najważniejsze flagi:
| Flaga | Znaczenie |
|---|---|
-a | Tryb archiwum (zachowuje uprawnienia, daty, symlinki) |
-v | Verbose – pokazuje przetwarzane pliki |
-z | Kompresja w locie |
-P | Postęp + wznowienie przerwanego transferu |
--delete | Usuwa pliki z celu, których nie ma w źródle |
--exclude | Wyklucza pliki/katalogi pasujące do wzorca |
--dry-run / -n | Symulacja bez faktycznych zmian |
--checksum / -c | Weryfikacja przez checksum zamiast daty/rozmiaru |
--bwlimit | Ograniczenie przepustowości (KB/s) |
--backup | Zachowuje nadpisane pliki jako kopie zapasowe |
Przykłady użycia rsync
Lokalna synchronizacja katalogów:
rsync -av /źródło/ /cel/
Kopia na zdalny serwer przez SSH:
rsync -avz -e ssh /lokalne/dane/ użytkownik@serwer.pl:/zdalne/dane/
Synchronizacja z usuwaniem nieistniejących plików:
rsync -av --delete /źródło/ /cel/
Backup z wykluczeniami i limitem pasma:
rsync -avz --exclude='*.tmp' --exclude='.cache/' \
--bwlimit=10000 /dane/ backup@192.168.1.100:/backup/
Wznowienie przerwanego transferu:
rsync -avP --partial /duży-plik.tar.gz serwer:/backup/
Mocne strony rsync
- Dojrzałość i stabilność – 28+ lat aktywnego rozwoju
- Wszechobecność – preinstalowany lub łatwo dostępny w każdym systemie Unix
- Wydajny transfer – algorytm delta minimalizuje przesyłane dane
- SSH out-of-the-box – bezpieczna transmisja bez dodatkowej konfiguracji
- Skryptowanie – idealnie integruje się z bash/cron/systemd
- Rsync daemon – możliwość uruchomienia serwera rsync na porcie 873
Ograniczenia rsync
- Brak natywnej obsługi chmury – nie obsługuje S3, Google Drive, OneDrive itp.
- Tylko Unix (natywnie) – na Windows wymaga WSL lub Cygwin
- Synchronizacja jednokierunkowa – brak wbudowanej dwukierunkowej synchronizacji
- Brak GUI – narzędzie tylko linii poleceń
- Konflikty bez rozwiązania – przy modyfikacji po obu stronach brak mechanizmu scalania
3. rclone – rsync dla Chmury
Czym jest rclone?
rclone to narzędzie open-source stworzone przez Nicka Craiga-Wooda w 2012 roku, często określane jako „rsync for cloud storage”. Jego misją jest ujednolicenie interfejsu do dziesiątek różnych usług przechowywania danych — lokalnych i chmurowych — za pomocą jednego, spójnego CLI.
Oficjalna strona: rclone.org
Obsługiwane backendy (ponad 70 usług)
rclone obsługuje m.in.:
| Chmury publiczne | Protokoły sieciowe | Lokalne i specjalne |
|---|---|---|
| Amazon S3 | SFTPHTTPS (REST API), S3 API | Brak natywnego lokalnego FS; gateway S3, kompatybilność przez MinIO / Storage Gateway |
| Google Drive | HTTPS (REST API), API Google Drive | Synchronizacja lokalna, cache offline, szyfrowanie po stronie klienta |
| Microsoft OneDrive | HTTPS (REST API), WebDAV (pośrednio), Microsoft Graph API | Files On-Demand, integracja z Windows Explorer, lokalna synchronizacja |
| Dropbox | HTTPS (REST API), LAN Sync, API Dropbox | Chunking plików, deduplikacja, lokalny klient synchronizacji |
| Backblaze B2 | HTTPS (REST API), S3-compatible API | Integracja z rclone, szyfrowanie po stronie klienta, brak on-prem |
| Cloudflare R2 | HTTPS (S3-compatible API), REST | Edge storage, brak egress fees, integracja z Cloudflare Workers |
| Azure Blob Storage | HTTPS (REST API), S3 compatibility (gateway), ABFS | Azure Files (SMB/NFS), Azurite emulator (lokalnie), Azure Arc (hybryda) |
| Google Cloud Storage | HTTPS (JSON API), XML API, S3 interoperability | Emulator lokalny (GCS emulator), cache, integracja z Anthos |
| Wasabi | HTTPS (S3-compatible API) | Brak lokalnego deploymentu, pełna kompatybilność S3 |
| MinIO | HTTPS (S3 API) | On-prem, Kubernetes, edge, distributed mode, erasure coding |
Instalacja rclone
Linux/macOS (jeden skrypt):
curl https://rclone.org/install.sh | sudo bash
Windows (PowerShell jako Administrator):
winget install Rclone.Rclone
Docker:
docker run --rm rclone/rclone version
Konfiguracja rclone – pierwsze kroki
rclone config
Interaktywny kreator przeprowadzi przez konfigurację wybranego backendu. Konfiguracja jest zapisywana w ~/.config/rclone/rclone.conf.
Przykład konfiguracji Google Drive:
[gdrive]
type = drive
client_id = TWOJE_ID
client_secret = TWÓJ_SECRET
scope = drive
token = {"access_token":"..."}
Kluczowe komendy rclone
| Komenda | Opis |
|---|---|
rclone copy | Kopiuje pliki (nie usuwa z celu) |
rclone sync | Synchronizuje (usuwa pliki nieobecne w źródle) |
rclone move | Przenosi pliki |
rclone ls / lsl / lsd | Listuje pliki/katalogi |
rclone check | Porównuje źródło i cel |
rclone mount | Montuje zdalny zasób jako lokalny dysk |
rclone bisync | Dwukierunkowa synchronizacja |
rclone serve | Udostępnia zasób przez HTTP/SFTP/WebDAV |
rclone dedupe | Usuwa duplikaty |
rclone cryptcheck | Weryfikuje zaszyfrowane dane |
Przykłady użycia rclone
Synchronizacja lokalnego folderu z Google Drive:
rclone sync /lokalne/dane gdrive:backup/dane --progress
Kopia między dwoma chmurami (S3 → B2):
rclone copy s3:mój-bucket b2:mój-bucket-backup --transfers=16 --progress
Montowanie Google Drive jako dysku:
rclone mount gdrive: ~/GoogleDrive --vfs-cache-mode writes &
Szyfrowana kopia zapasowa na Dropbox:
# Najpierw skonfiguruj backend "Crypt" na bazie "dropbox:"
rclone sync /poufne/dane dropbox-crypt:zaszyfrowane/ --progress
Synchronizacja z filtrowaniem i logowaniem:
rclone sync /źródło s3:bucket \
--exclude "*.tmp" \
--exclude ".git/**" \
--log-file=/var/log/rclone.log \
--log-level INFO \
--transfers=8 \
--checkers=16
Bisync (dwukierunkowa synchronizacja):
rclone bisync /lokalne/dane gdrive:dane --resync --progress
Mocne strony rclone
- Ogromna liczba backendów – 70+ usług pod jednym CLI
- Szyfrowanie end-to-end – wbudowany backend Crypt
- Montowanie jako dysk – FUSE na Linux/macOS, WinFSP na Windows
- Wysoka wydajność – równoległe transfery, chunking dużych plików
- Filtrowanie – zaawansowane reguły include/exclude
- Aktywna społeczność – częste aktualizacje, bogata dokumentacja
- Serwowanie danych – HTTP/SFTP/WebDAV/S3 server
Ograniczenia rclone
- Brak algorytmu delta (dla większości backendów) – domyślnie przesyła całe pliki
- Złożona konfiguracja – przy wielu backendach i szyfrowaniu wymaga wiedzy
- bisync w fazie beta – dwukierunkowa synchronizacja nie zawsze niezawodna przy konfliktach
- Zużycie pamięci – przy dużych liczbach plików może pochłaniać dużo RAM
4. Robocopy – Potężne Narzędzie Microsoftu
Historia i znaczenie Robocopy
Robocopy (Robust File Copy) to narzędzie wiersza poleceń od Microsoftu, dostępne w systemach Windows od wersji Vista (2007) jako część systemu. Wcześniej było częścią Windows Resource Kit. Jego nazwa nie jest przypadkowa — projektowano je jako „solidna kopia”, odporna na błędy sieciowe i przerwy.
Robocopy zastąpiło przestarzałe xcopy i jest nadal domyślnym wyborem administratorów Windows do migracji danych, backupów i synchronizacji w środowiskach korporacyjnych.
Instalacja i dostępność
Robocopy jest preinstalowane w każdym systemie Windows Vista, 7, 8, 10 i 11 oraz Windows Server 2008+. Nie wymaga instalacji
# Sprawdzenie wersji
robocopy /?
Składnia Robocopy
ROBOCOPY źródło cel [plik [plik]...] [opcje]
Najważniejsze parametry:
| Parametr | Znaczenie |
|---|---|
/E | Kopiuje podkatalogi (także puste) |
/MIR | Mirror – synchronizuje katalog (usuwa niepotrzebne) |
/MOV | Przenosi pliki (usuwa po skopiowaniu) |
/Z | Tryb restart – wznawia po przerwaniu |
/B | Tryb backup (omija ograniczenia uprawnień) |
/MT:N | Wielowątkowe kopiowanie (domyślnie 8 wątków) |
/LOG:plik | Zapis logu do pliku |
/XF | Wyklucza pliki pasujące do wzorca |
/XD | Wyklucza katalogi |
/COPYALL | Kopiuje wszystkie atrybuty (dane, atrybuty, czasy, ACL, właściciel) |
/DCOPY:DAT | Kopiuje atrybuty katalogów |
/R:N | Liczba ponownych prób (domyślnie 1 milion!) |
/W:N | Czas oczekiwania między próbami (sekundy) |
/IPG:N | Przerwa między pakietami (throttling) |
/BYTES | Rozmiary w bajtach zamiast KB/MB |
Przykłady użycia Robocopy
Podstawowa synchronizacja katalogów:
robocopy C:\źródło D:\cel /MIR /Z /LOG:C:\log\robocopy.log
Wielowątkowa kopia z obsługą błędów:
robocopy \\serwer\udział D:\lokalna /E /Z /MT:16 /R:3 /W:10
Kopia z zachowaniem wszystkich atrybutów NTFS:
robocopy C:\ważne-dane \\backup\ważne-dane /MIR /COPYALL /B /LOG+:backup.log
Migracja danych między serwerami (nocna):
robocopy \\stary-serwer\dane \\nowy-serwer\dane /MIR /COPYALL /B /MT:32 ^
/R:5 /W:30 /LOG:C:\migracja\log.txt /TEE /NP
Kopia tylko zmodyfikowanych plików (backup przyrostowy):
robocopy C:\dane D:\backup /E /XO /LOG:backup.log
Flaga /XO (eXclude Older) pomija pliki starsze niż w źródle.
Harmonogram zadań (Task Scheduler):
schtasks /create /tn "Nocny backup" /tr "robocopy C:\dane D:\backup /MIR /Z" /sc daily /st 02:00
Kody wyjścia Robocopy
Robocopy używa bitmasek dla kodów wyjścia — to ważne przy skryptowaniu:
| Wartość | Znaczenie |
|---|---|
| 0 | Brak zmian – pliki już były identyczne |
| 1 | Skopiowano nowe pliki |
| 2 | Usunięto dodatkowe pliki z celu |
| 4 | Pliki niezgodne |
| 8 | Błędy kopiowania |
| 16 | Błąd krytyczny |
Uwaga: kod 1 jest sukcesem — skrypty sprawdzające errorlevel -gt 0 mogą błędnie interpretować go jako błąd!
Mocne strony Robocopy
- Wbudowany w Windows – zero instalacji, zero zależności
- Wsparcie dla ACL i atrybutów NTFS – niezastąpiony przy migracji danych Windows
- Odporność na błędy – automatyczne ponowne próby, tryb restart
- Wielowątkowość –
/MTdo 128 wątków równoległych - Tryb backup – omija ograniczenia uprawnień
- Dojrzały kod – dziesiątki lat testów w środowiskach korporacyjnych
Ograniczenia Robocopy
- Tylko Windows – brak wersji na Linux/macOS
- Brak obsługi chmury – nie obsługuje S3, GDrive ani innych
- Brak GUI (poza niezalecanym RoboMirror) – czysto CLI
- Synchronizacja jednokierunkowa –
/MIRzawsze niszczy zmiany na celu - Składnia archaiczna – nieintuicyjna dla nowych użytkowników
5. Unison – Synchronizacja Dwukierunkowa
Czym jest Unison i co go wyróżnia?
Unison to narzędzie do synchronizacji plików stworzone przez Benjamina Pierce’a na Uniwersytecie Pensylwanii. Jego główna cecha wyróżniająca na tle rsync, rclone i Robocopy to prawdziwa, dwukierunkowa synchronizacja z obsługą konfliktów.
Podczas gdy rsync synchronizuje od A do B (nadpisując zmiany w B), Unison wykrywa zmiany po obu stronach i podejmuje inteligentne decyzje: propaguje zmiany, wykrywa konflikty i — w trybie interaktywnym — pyta użytkownika jak postąpić.
Strona projektu: github.com/bcpierce00/unison
Instalacja Unison
Linux (Debian/Ubuntu):
sudo apt install unison
macOS (Homebrew):
brew install unison
Windows:
# Binaria dostępne na GitHub releases lub przez winget
winget install bcpierce00.unison
Jak działa Unison?
Unison przechowuje archiwum stanu (plik .unison/) zawierający skróty (fingerprints) plików z poprzedniej synchronizacji. Przy kolejnym uruchomieniu:
- Skanuje obie repliki
- Porównuje bieżący stan z archiwum
- Klasyfikuje każdy plik: niezmieniony / zmieniony / nowy / usunięty
- Wykrywa konflikty (plik zmieniony po obu stronach)
- Propaguje bezkonfliktowe zmiany automatycznie
- Konflikty prezentuje użytkownikowi lub obsługuje zgodnie z polityką
Składnia i konfiguracja Unison
Podstawowa synchronizacja:
unison /ścieżka/lokalna ssh://serwer//ścieżka/zdalna
Plik profilu (~/.unison/praca.prf):
root = /home/user/praca
root = ssh://serwer.pl//backup/praca
# Wyklucz pliki tymczasowe
ignore = Name *.tmp
ignore = Name .DS_Store
ignore = Path .git
# Automatycznie aktualizuj nowe pliki bez pytania
auto = true
# Preferuj nowszą wersję przy konflikcie
prefer = newer
# Synchronizuj uprawnienia
perms = -1
# Kompresja
fastcheck = true
Uruchomienie z profilem:
unison praca
Unison z GUI:
unison-gtk praca
Tryby rozwiązywania konfliktów w Unison
| Tryb | Działanie |
|---|---|
| Interaktywny (domyślny) | Pytaj użytkownika o każdy konflikt |
prefer = newer | Zawsze wybierz nowszą wersję |
prefer = older | Zawsze wybierz starszą wersję |
prefer = /ścieżka/lewa | Zawsze preferuj lewą replikę |
prefer = /ścieżka/prawa | Zawsze preferuj prawą replikę |
Mocne strony Unison
- Prawdziwa dwukierunkowa synchronizacja – wykrywa i obsługuje zmiany z obu stron
- Inteligentna obsługa konfliktów – zamiast cichego nadpisania, informuje i pyta
- Obsługa SSH – bezpieczna komunikacja sieciowa
- Profile – wygodna konfiguracja różnych scenariuszy
- GUI dostępne – unison-gtk dla użytkowników bez CLI
- Weryfikacja integralności – porównuje sumy kontrolne, nie tylko daty
Ograniczenia Unison
- Wolniejszy start – skanowanie obu replik przed każdą synchronizacją
- Wymaga tej samej wersji po obu stronach – problematyczne przy aktualizacjach
- Brak obsługi chmury – tylko lokalny system plików i SSH
- Mniej aktywny rozwój – projekt akademicki, wolniejszy cykl wydań
- Brak Windows ACL – nie obsługuje specyficznych atrybutów NTFS
6. Szczegółowe Porównanie: rsync vs rclone vs Robocopy vs Unison
Tabela porównawcza – główne cechy
| Cecha | rsync | rclone | Robocopy | Unison |
|---|---|---|---|---|
| System operacyjny | Linux, macOS, Windows (WSL) | Linux, macOS, Windows | Windows only | Linux, macOS, Windows |
| Obsługa chmury | Nie | (70+ usług) | Nie | Nie |
| Obsługa SSH/SFTP | natywne | Tak | Nie | Tak |
| Synchronizacja dwukierunkowa | Nie | Tak (bisync, beta) | Nie | Tak (dojrzałe) |
| Algorytm delta transfer | (najlepszy) | (większość backendów) | Nie | (częściowo) |
| Obsługa ACL/NTFS | (Linux) | ograniczona | (NTFS pełne) | Nie |
| Kompresja | Tak | Tak | Nie | Tak |
| Szyfrowanie | przez SSH | wbudowane (Crypt) | Nie | przez SSH |
| GUI | Nie | Nie (tylko CLI) | Nie (RoboMirror) | Tak (GTK) |
| Wielowątkowość | Nie (single thread) | Tak | (do 128) | Nie |
| Wykluczenia/filtry | Tak | Tak zaawansowane | Tak | Tak |
| Obsługa konfliktów | Nie | Tak – zależy od metody transferu | Nie | Tak |
| Licencja | GPL v3 | MIT | Własnościowa | GPL v2 |
| Dojrzałość | 1996 | 2012 | ~2007 | 1999 |
Porównanie wydajności transferu
Wydajność zależy silnie od scenariusza. Oto ogólne tendencje:
Lokalny transfer dużych plików (np. 100 × 1GB):
Robocopy /MT:32 >>> rclone --transfers=32 > rsync ≈ Unison
Transfer zdalny przez SSH (wolne łącze, pliki z drobnymi zmianami):
rsync (delta) >>> Unison > rclone (SFTP) > Robocopy (nie dotyczy)
Synchronizacja z chmurą (S3, GDrive):
rclone --transfers=16 >>> pozostałe (nie obsługują)
Wiele małych plików (milion plików < 1KB):
rclone (z --fast-list) > rsync > Robocopy /MT > Unison
Porównanie scenariuszy użycia
Scenariusz 1: Backup serwera Linux na zdalny serwer
Zwycięzca: rsync
rsync -avz --delete --exclude='/proc' --exclude='/sys' --exclude='/tmp' \
/ backup@serwer-backup:/backup/$(hostname)/$(date +%Y%m%d)/
rsync minimalizuje transfer dzięki deltom, działa natywnie przez SSH, jest dostępny na każdym serwerze.
Scenariusz 2: Backup danych do chmury (S3, Google Drive)
Zwycięzca: rclone
rclone sync /dane s3:mój-bucket/backup --progress --transfers=16
rclone to jedyne narzędzie z czwórki, które natywnie obsługuje usługi chmurowe.
Scenariusz 3: Migracja danych w środowisku Windows (serwer plików)
Zwycięzca: Robocopy
robocopy \\stary-fs\dane \\nowy-fs\dane /MIR /COPYALL /B /MT:32 /R:5 /W:10
Robocopy bezbłędnie kopiuje uprawnienia NTFS, ACL, atrybuty plików — coś, z czym inne narzędzia mają problem na Windows.
Scenariusz 4: Synchronizacja folderu projektów między laptopem a desktopem
Zwycięzca: Unison
unison ~/projekty ssh://desktop//home/user/projekty -auto -prefer newer
Unison wykrywa zmiany po obu stronach i propaguje je inteligentnie — idealnie dla scenariuszy, gdzie edytujemy pliki na obu maszynach.
Scenariusz 5: Migracja między dwoma chmurami
Zwycięzca: rclone
rclone copy s3:stary-bucket b2:nowy-bucket --transfers=32 --progress
Tylko rclone może bezpośrednio „gadać” z dwoma chmurami jednocześnie.
7. Kiedy Użyć Którego Narzędzia? Tabela Decyzyjna
Masz pliki do synchronizacji/kopiowania
│
├─ Cel to usługa chmurowa? ──────────────────► rclone
│
├─ Pracujesz tylko na Windows? ──────────────► Robocopy
│
├─ Potrzebujesz dwukierunkowej synch.? ──────► Unison
│
├─ Synchronizacja Linux/macOS przez SSH? ────► rsync
│
└─ Migracja danych chmura ↔ chmura? ─────────► rclone
Rekomendacje według profilu użytkownika
Administrator Linux/macOS: → rsync do backupów lokalnych i sieciowych, rclone do backupów w chmurze
Administrator Windows: → Robocopy do migracji i backupów lokalnych, rclone do chmury
Deweloper / praca na wielu maszynach: → Unison do synchronizacji projektów między maszynami, rclone do backupu chmurowego
Użytkownik domowy: → rclone (Google Drive/Dropbox) + Unison (między komputerami)
Środowisko CI/CD: → rsync do deploymentu na serwery, rclone do dystrybucji artefaktów
8. Przykłady Użycia i Gotowe Komendy
Automatyczny backup domowy (Linux + cron)
# /etc/cron.d/backup-domowy
0 3 * * * root rsync -avz --delete /home/ backup@nas:/backup/home/ \
--log-file=/var/log/backup.log 2>&1
Backup do Backblaze B2 z szyfrowaniem (rclone)
# 1. Skonfiguruj backend B2
rclone config # dodaj "b2" typu b2
# 2. Skonfiguruj backend Crypt na bazie b2
rclone config # dodaj "b2-crypt" typu crypt, remote=b2:mój-bucket
# 3. Synchronizacja z szyfrowaniem
rclone sync /ważne/dane b2-crypt:/ --progress \
--log-file=/var/log/rclone-b2.log
Skrypt backupu Windows z Robocopy i rotacją
@echo off
set SOURCE=C:\Dane
set DEST=D:\Backup\%DATE:~10,4%-%DATE:~4,2%-%DATE:~7,2%
set LOG=C:\Logi\backup-%DATE:~10,4%%DATE:~4,2%%DATE:~7,2%.log
robocopy %SOURCE% %DEST% /E /COPYALL /R:3 /W:30 /MT:16 /LOG:%LOG% /TEE
if %ERRORLEVEL% LEQ 3 (
echo Backup zakończony sukcesem >> %LOG%
) else (
echo BŁĄD: Backup zakończony z kodem %ERRORLEVEL% >> %LOG%
net send Administrator "BŁĄD BACKUPU!"
)
Synchronizacja projektów Git między maszynami (Unison)
# ~/.unison/git-projekty.prf
root = /home/user/projekty
root = ssh://laptop.local//home/user/projekty
ignore = Path */.git/objects
ignore = Name node_modules
ignore = Name __pycache__
ignore = Name *.pyc
ignore = Name .DS_Store
auto = true
batch = true
prefer = newer
log = true
logfile = /var/log/unison-projekty.log
Monitoring i powiadomienia dla rclone
#!/bin/bash
# backup-z-alertem.sh
LOGFILE=/var/log/rclone-$(date +%Y%m%d).log
rclone sync /dane gdrive:backup \
--log-file=$LOGFILE \
--log-level INFO \
--stats-one-line \
--transfers=8
STATUS=$?
if [ $STATUS -ne 0 ]; then
mail -s "BŁĄD: Backup rclone nieudany" admin@firma.pl < $LOGFILE
fi
9. Bezpieczeństwo i Szyfrowanie Danych podczas Synchronizacji
rsync + SSH – złoty standard bezpieczeństwa
rsync przez SSH szyfruje całą transmisję. Dodatkowe zabezpieczenia:
# Klucz SSH zamiast hasła
ssh-keygen -t ed25519 -f ~/.ssh/backup_key
ssh-copy-id -i ~/.ssh/backup_key.pub backup@serwer
# rsync z konkretnym kluczem
rsync -av -e "ssh -i ~/.ssh/backup_key -p 2222" /dane/ backup@serwer:/backup/
rclone Crypt – szyfrowanie po stronie klienta
rclone Crypt szyfruje przed przesłaniem – nawet administrator chmury nie ma dostępu do danych:
- Szyfrowanie: XSalsa20
- Uwierzytelnienie: Poly1305
- Nazwy plików: szyfrowane opcjonalnie (utrudnia analizę struktury)
- Hasło + sól: konfigurowane lokalnie
# Przykład konfiguracji Crypt w rclone.conf
[gdrive-crypt]
type = crypt
remote = gdrive:zaszyfrowane
filename_encryption = standard
directory_name_encryption = true
password = ZASZYFROWANE_HASŁO
password2 = ZASZYFROWANA_SÓL
Weryfikacja integralności po transferze
# rsync – weryfikacja przez checksum
rsync -av --checksum /źródło/ /cel/
# rclone – weryfikacja zgodności
rclone check /lokalne s3:bucket --one-way
# Własna weryfikacja SHA256
find /dane -type f | xargs sha256sum > /tmp/sumy_przed.txt
rsync -av /dane/ /backup/
find /backup -type f | xargs sha256sum > /tmp/sumy_po.txt
diff /tmp/sumy_przed.txt /tmp/sumy_po.txt
10. Wydajność i Benchmarki
Czynniki wpływające na wydajność synchronizacji
- Przepustowość sieci – ograniczenie zewnętrzne
- Liczba plików vs rozmiar plików – małe pliki = overhead metadanych
- Algorytm porównywania – data+rozmiar vs checksum (wolniejsze)
- Równoległość – wielowątkowe transfery (rclone, Robocopy)
- Kompresja – opłacalna przy wolnym łączu i kompresowalnych danych
- Cache VFS – istotne dla rclone mount
Optymalizacja rsync
# Szybszy rsync – tylko data/rozmiar, bez checksum, z kompresją
rsync -av --size-only -z --no-perms /źródło/ /cel/
# Dla wielu małych plików – unikaj skanowania z --checksum
rsync -av --modify-window=2 /źródło/ /cel/
Optymalizacja rclone
# Maksymalna wydajność przy S3
rclone sync /dane s3:bucket \
--transfers=32 \
--checkers=64 \
--s3-upload-concurrency=8 \
--s3-chunk-size=128M \
--fast-list \
--buffer-size=256M \
--progress
Optymalizacja Robocopy
REM Maksymalna wydajność (SSD-to-SSD lub szybka sieć)
robocopy C:\źródło D:\cel /MIR /Z /MT:64 /BYTES /NP /LOG:log.txt
REM Przy wolnej sieci – zmniejsz wątki, dodaj throttling
robocopy \\serwer\udział D:\lok /MIR /Z /MT:4 /IPG:50 /R:3 /W:5
11. Integracja z Automatyzacją i Harmonogramami Zadań
cron (Linux/macOS)
# Pełny backup nocny o 2:00
0 2 * * * /usr/local/bin/rsync -avz --delete /dane/ backup@nas:/backup/ >> /var/log/backup.log 2>&1
# Synchronizacja z chmurą co 6 godzin
0 */6 * * * /usr/bin/rclone sync /dokumenty gdrive:dokumenty --log-file=/var/log/rclone.log
systemd timer (Linux)
# /etc/systemd/system/backup.service
[Unit]
Description=Nocny backup rsync
After=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/bin/rsync -avz --delete /dane/ backup@nas:/backup/
User=backup
# /etc/systemd/system/backup.timer
[Unit]
Description=Uruchamia backup o 2:00
[Timer]
OnCalendar=02:00
Persistent=true
[Install]
WantedBy=timers.target
systemctl enable --now backup.timer
Task Scheduler (Windows)
# PowerShell – tworzenie zadania z Robocopy
$action = New-ScheduledTaskAction -Execute "robocopy" `
-Argument "C:\Dane D:\Backup /MIR /Z /MT:16 /LOG:C:\Logi\backup.log"
$trigger = New-ScheduledTaskTrigger -Daily -At 2am
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "NocnyBackup"
GitHub Actions + rclone (CI/CD)
name: Deploy artefaktów do S3
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Zainstaluj rclone
run: curl https://rclone.org/install.sh | sudo bash
- name: Konfiguruj rclone
run: |
mkdir -p ~/.config/rclone
echo "${{ secrets.RCLONE_CONFIG }}" > ~/.config/rclone/rclone.conf
- name: Synchronizuj z S3
run: rclone sync ./dist s3:mój-bucket/prod --progress
12. Najczęstsze Błędy i Jak ich Unikać
Błąd 1: Brakujący trailing slash w rsync
# Nie - Kopiuje katalog "dane" DO cel/ → cel/dane/
rsync -av /źródło/dane /cel/
# Tak - Kopiuje ZAWARTOŚĆ dane/ do cel/
rsync -av /źródło/dane/ /cel/
Zasada: Slash na końcu źródła = „kopiuj zawartość”. Brak slasha = „kopiuj katalog wraz z nazwą”.
Błąd 2: Robocopy ERRORLEVEL w skryptach
REM Nie - Traktuje sukces (kod 1) jako błąd
robocopy src dst /MIR
if errorlevel 1 echo BŁĄD!
REM Tak - Prawidłowe sprawdzanie
robocopy src dst /MIR
if %ERRORLEVEL% GEQ 8 echo BŁĄD!
Błąd 3: rclone sync bez –dry-run
# Nie - Możesz usunąć dane bez sprawdzenia
rclone sync /lokalne s3:bucket
# Tak - Najpierw sprawdź co zostanie zrobione
rclone sync /lokalne s3:bucket --dry-run --verbose
rclone sync /lokalne s3:bucket # dopiero po weryfikacji
Błąd 4: Unison – różne wersje po obu stronach
# Sprawdź wersje przed synchronizacją
unison -version # lokalna
ssh serwer unison -version # zdalna
# Muszą być identyczne!
Błąd 5: Brak testowania odtwarzania z backupu
Backup bez testowania odtwarzania to iluzja bezpieczeństwa. Regularnie wykonuj:
# Test odtwarzania z rsync backup
rsync -avz --dry-run backup@nas:/backup/2024-01-15/ /tmp/test-restore/
# Weryfikacja integralności rclone
rclone check /oryginał s3:bucket/backup --one-way
13. Alternatywy i Narzędzia Uzupełniające
Borg Backup – kompresja + deduplikacja + szyfrowanie
Borg to narzędzie backupowe łączące kompresję, deduplikację i szyfrowanie. Idealne jako uzupełnienie rsync dla backupów historycznych.
# Inicjalizacja
borg init --encryption=repokey /backup/repo
# Tworzenie snapshotu
borg create /backup/repo::$(date +%Y%m%d) /dane
# Usuwanie starych snapshotów
borg prune /backup/repo --keep-daily=7 --keep-weekly=4 --keep-monthly=12
Restic – nowoczesny backup z deduplikacją
Restic to alternatywa dla Borg z lepszą obsługą chmury (współpracuje z rclone jako backendem).
Syncthing – P2P synchronizacja bez serwera
Syncthing oferuje dwukierunkową synchronizację bez centralnego serwera — idealne dla prywatności.
rsnapshot – snapshotowe backupy na bazie rsync
rsnapshot buduje strukturę snapshotów (daily/weekly/monthly) używając rsync i hardlinków.
Lsyncd – synchronizacja w czasie rzeczywistym
lsyncd (Live Syncing Daemon) monitoruje zmiany przez inotify/kqueue i wywołuje rsync natychmiast po modyfikacji.
14. Podsumowanie i Rekomendacje
Po dogłębnej analizie czterech narzędzi można sformułować jasne rekomendacje:
Ranking ogólny
| Narzędzie | Najlepsze zastosowanie | Ocena |
|---|---|---|
| rsync | Backup Linux/macOS, serwery, scripiting | 5/5 |
| rclone | Chmura, migracje, szyfrowanie | 5/5 |
| Robocopy | Windows enterprise, migracja NTFS | 4/5 |
| Unison | Sync dwukierunkowy, multi-device | 4/5 |
Finalne rekomendacje
Jeśli masz tylko jeden wybór:
- Linux/macOS + backup lokalny/sieciowy → rsync
- Cokolwiek + chmura → rclone
- Windows enterprise → Robocopy
- Wiele maszyn, dwukierunkowa sync → Unison
Optymalna kombinacja dla większości użytkowników:
rsync (backup lokalny i sieciowy)
+
rclone (backup w chmurze + szyfrowanie)
+
Unison (sync między własnymi maszynami)
Narzędzia te nie są konkurencją — są uzupełnieniem. Profesjonalna strategia backupu 3-2-1 (3 kopie, 2 nośniki, 1 poza siedzibą) prawie zawsze wymaga kombinacji kilku narzędzi.
15. FAQ – Najczęściej Zadawane Pytania
Czy rsync działa na Windows?
Tak, ale nie natywnie. rsync na Windows wymaga WSL2 (Windows Subsystem for Linux), Cygwin lub MSYS2. Alternatywnie można użyć DeltaCopy — wrappera rsync dla Windows lub po prostu rclone, który działa natywnie na Windows i oferuje podobną funkcjonalność.
Czy rclone zastępuje rsync?
Nie w pełni. rclone jest niezrównanym narzędziem do pracy z chmurą, ale brak algorytmu delta oznacza, że przy synchronizacji dużych plików z małymi zmianami rsync przesyła znacznie mniej danych. Dla środowisk czysto lokalnych lub SSH, rsync jest efektywniejszy.
Jak zsynchronizować dwa foldery w obie strony za pomocą rsync?
rsync nie obsługuje natywnie dwukierunkowej synchronizacji. Można symulować to dwoma wywołaniami rsync (z ryzykiem konfliktów) lub użyć Unison albo rclone bisync (wciąż beta).
Czy Robocopy jest darmowy?
Tak. Robocopy jest częścią Windows i nie wymaga zakupu licencji. Jest dostępny bezpłatnie na wszystkich wspieranych wersjach Windows i Windows Server.
Jak rclone obsługuje pliki ponad 5GB w Google Drive?
rclone automatycznie obsługuje pliki ponad limitem przez chunking (podział na części). Nie wymaga to żadnej dodatkowej konfiguracji — działa transparentnie.
Czy Unison działa bez sieci?
Tak — Unison działa lokalnie między dwoma katalogami na tym samym komputerze lub zamontowanymi udziałami sieciowymi. SSH jest wymagane tylko przy synchronizacji ze zdalną maszyną.
Jakie jest najlepsze narzędzie do backupu NAS?
Dla NAS (Synology, QNAP, TrueNAS): rsync jest wbudowany w większość urządzeń NAS i jest domyślnym wyborem. rclone jest polecany, gdy chcesz zbackupować NAS do chmury.
rsync vs rclone – co jest szybsze?
Zależy od scenariusza. rsync jest szybszy przy aktualizacji dużych plików z małymi zmianami (delta transfer). rclone jest szybszy przy kopiowaniu wielu plików (wielowątkowość) i przy pracy z chmurą. Dla transferów S3-to-S3 lub GDrive-to-GDrive, rclone nie ma sobie równych.
Zasoby i Dokumentacja
- rsync – rsync.samba.org | man rsync
- rclone – rclone.org | Dokumentacja
- Robocopy – Microsoft Docs
- Unison – GitHub | Dokumentacja
Artykuł zaktualizowany: czerwiec 2026 | Autoryzowane do użytku na zasadach Creative Commons CC BY-SA 4.0

