Główną różnicą między tymi narzędziami jest sposób kopiowania plików.
scp
w zasadzie czyta plik źródłowy i zapisuje go w miejscu docelowym. Wykonuje zwykłą liniową kopię, lokalnie lub przez sieć.
rsync
kopiuje także pliki lokalnie lub przez sieć. Ale wykorzystuje specjalny algorytm transferu delta i kilka optymalizacji, aby znacznie przyspieszyć działanie. Rozważ połączenie.
rsync A host:B
rsync
sprawdzi rozmiary plików i znaczniki czasu modyfikacji zarówno A, jak i B , i pominie dalsze przetwarzanie, jeśli się zgadzają.
Jeśli plik docelowy B już istnieje, algorytm transferu delta upewni się, że tylko różnice między A i B zostaną przesłane przewodem.
rsync
będzie zapisywać dane do pliku tymczasowego T , a następnie zastąpić plik docelowy B z T , aby wygląd update „atomowy” do procesów, które mogą być z wykorzystaniem B .
Kolejna różnica między nimi dotyczy inwokacji. rsync
ma mnóstwo opcji wiersza poleceń, co pozwala użytkownikowi dokładnie dostosować jego zachowanie. Obsługuje złożone reguły filtrowania, działa w trybie wsadowym, w trybie demona itp. scp
Ma tylko kilka przełączników.
Podsumowując, używaj scp
do codziennych zadań. Polecenia, które wpisujesz raz na jakiś czas w interaktywnej powłoce. Jest prostszy w użyciu, a w takich przypadkach rsync
optymalizacje niewiele pomogą.
Do powtarzających się zadań, takich jak cron
zadania, użyj rsync
. Jak wspomniano, przy wielu wywołaniach skorzysta z danych już przesłanych, działa bardzo szybko i oszczędza zasoby. Jest to doskonałe narzędzie do synchronizacji dwóch katalogów w sieci.
Również, gdy mamy do czynienia z dużymi plikami, korzystać rsync
z -P
opcji. Jeśli transfer zostanie przerwany, możesz go wznowić w miejscu, w którym został zatrzymany, ponownie wydając polecenie. Zobacz Sid Kshatriya za odpowiedź .