Czy kiedykolwiek istnieje powód, aby używać scp zamiast rsync?
61
Czy istnieje powód, aby użyć scpzamiast rsync? Nie widzę powodu, by używać scptego ponownie, rsyncrobi wszystko, co scprobi, z większym bezpieczeństwem (może zachować dowiązania symboliczne itp.).
Krótka odpowiedź: Nie. Scp nigdy nie jest szkodliwy.
Shadur
2
@Shadur scp jest szkodliwy, ponieważ domyślnie zastępuje istniejące pliki docelowe. Podobnie rsync, ale przynajmniej pozwala ograniczyć możliwe obrażenia za pomocą -u.
Gilles
3
@Gilles Jak w przypadku każdego narzędzia, musisz zrozumieć, co robi i jak to zrobić, aby bezpiecznie z niego korzystać.
Alex Chamberlain
8
W tym kontekście regularne cpi rmbyłoby uważane za „szkodliwe” - a jeśli zdefiniujesz „szkodliwe” jako „może mnie zepsuć, jeśli zrobię coś głupiego”, rsyncnie będzie mniej szkodliwe.
Shadur
1
W systemach bez rsynczainstalowanego korzystania rsync(oczywiście) nawet nie jest możliwe.
Kusalananda
Odpowiedzi:
45
scp zapewnia metodę kopiowania plików z jednego komputera na komputer zdalny za pomocą bezpiecznego połączenia SSH.
rsync pozwala synchronizować zdalne foldery.
Są to różne programy i oba mają swoje zastosowania. scp jest zawsze bezpieczny, podczas gdy rsync musi podróżować przez SSH, aby być bezpiecznym.
Poza tym całkiem pewny jest, że rsync musi być zainstalowany na drugim końcu.
ckhan
3
@ckhan, nie, nie można skopiować bez zainstalowania niczego po drugiej stronie, będzie po prostu mniej wydajne.
mikebloch
2
Lubię prostotę scp.
Alex Chamberlain
2
@mikebloch Jak to robisz? Czy to nowa funkcja? Właśnie wypróbowałem to przy użyciu wersji 3.0.9. i narzekał, że nie można go znaleźć rsyncna pilocie.
Alexios
1
@mikebloch, musi być zainstalowany na serwerze, aby wykonać obliczenia sumy kontrolnej, co może zwiększyć obciążenie procesora na serwerze. Właśnie dlatego większość dużych witryn nie obsługuje go i dlatego zsynczostał stworzony jako alternatywa.
psusi
19
Jedną z głównych rzeczy (o której myślę, że nikt nie wspominał) jest to, że jeśli przesyłasz duże ilości danych lub plików, i jeśli transfer zostanie przerwany z jakiegokolwiek powodu, rsync odbierze go tam, gdzie go przerwał. Podczas gdy scp nie.
Używam scp, jeśli chcę przenieść jeden lub kilka plików lub katalogów. Idę do rsync po dane o rozmiarze wielu GB.
Warto dodać, że --partialflaga jest przydatna podczas przesyłania dużych plików. rsyncwybierze miejsce, w którym zostało przerwane w pliku, zamiast ponownie uruchomić ten plik.
Flup,
Jak wspomniano w @Flup, rsync nie pozostawia żadnych plików w drodze do wznowienia, chyba że użyjesz opcji --partial. Pliki te są domyślnie ukryte w katalogu docelowym. Możesz użyć --partial-dir, aby umieścić wszystkie te pliki w jednym katalogu.
Lester Cheung
Cóż, rsync -vP username@host:/path/to/file .też to zrobi. Zobacz tę odpowiedź na Stackoverflow
rsync może przesyłać pliki między dwoma zdalnymi hostami. W rzeczywistości rsync a host:bjest to równoważne z scp a host:b.
brandizzi
Tak napisałem, rsync może przenosić delty między lokalnymi i zdalnymi hostami, ale scp nie ogranicza się tylko do tego, może przenosić delty między dwoma zdalnymi hostami. @brandizzi
rsyncporównuje pliki na każdym końcu i przesyła tylko zmienione części zmienionych plików. Kiedy przesyłasz pliki po raz pierwszy, zachowuje się bardzo podobnie scp, ale w przypadku drugiego transferu, w którym większość plików pozostaje niezmieniona, przesunie znacznie mniej danych niż scp. Jest to również wygodny sposób na zrestartowanie nieudanych transferów - wystarczy ponownie wydać to samo polecenie i przejdzie ono do miejsca, w którym zostało przerwane wcześniej, a scpzacznie się od nowa.
scpjest prostszy w użyciu, ponieważ wymaga mniej argumentów. Łapię myselv za pomocą scp zamiast rsyncgdy przesyłam tylko jeden plik. Prawdopodobnie jestem zbyt leniwy, aby zdefiniować alias do rsync ... ;-)
Hmmm, dlaczego tak jest? rsync a host:bjest równoważny z scp a host:btaką samą liczbą argumentów.
mikebloch
1
@mikebloch Dwie litery więcej do wpisania ... ;-) W przeszłości musiałem podać „-e ssh -a”, aby uzyskać właściwy wynik. Teraz, gdy „-e ssh” jest domyślny, może to być inna gra.
-u
.cp
irm
byłoby uważane za „szkodliwe” - a jeśli zdefiniujesz „szkodliwe” jako „może mnie zepsuć, jeśli zrobię coś głupiego”,rsync
nie będzie mniej szkodliwe.rsync
zainstalowanego korzystaniarsync
(oczywiście) nawet nie jest możliwe.Odpowiedzi:
scp zapewnia metodę kopiowania plików z jednego komputera na komputer zdalny za pomocą bezpiecznego połączenia SSH.
rsync pozwala synchronizować zdalne foldery.
Są to różne programy i oba mają swoje zastosowania. scp jest zawsze bezpieczny, podczas gdy rsync musi podróżować przez SSH, aby być bezpiecznym.
źródło
rsync
na pilocie.zsync
został stworzony jako alternatywa.Jedną z głównych rzeczy (o której myślę, że nikt nie wspominał) jest to, że jeśli przesyłasz duże ilości danych lub plików, i jeśli transfer zostanie przerwany z jakiegokolwiek powodu, rsync odbierze go tam, gdzie go przerwał. Podczas gdy scp nie.
Używam scp, jeśli chcę przenieść jeden lub kilka plików lub katalogów. Idę do rsync po dane o rozmiarze wielu GB.
źródło
--partial
flaga jest przydatna podczas przesyłania dużych plików.rsync
wybierze miejsce, w którym zostało przerwane w pliku, zamiast ponownie uruchomić ten plik.rsync -vP username@host:/path/to/file .
też to zrobi. Zobacz tę odpowiedź na Stackoverflowrsync : przenosi delty (używając swojego algorytmu transferu delta ) między:
scp : przenosi całe pliki między:
Podsumowanie:
scp
może przesyłać pliki między dwoma zdalnymi hostami, podczas gdyrsync
ich nie obsługuje.źródło
rsync a host:b
jest to równoważne zscp a host:b
.Użytkownik Chris z Webhosting Talk pisze:
źródło
scp
jest prostszy w użyciu, ponieważ wymaga mniej argumentów. Łapię myselv za pomocą scp zamiastrsync
gdy przesyłam tylko jeden plik. Prawdopodobnie jestem zbyt leniwy, aby zdefiniować alias do rsync ... ;-)źródło
rsync a host:b
jest równoważny zscp a host:b
taką samą liczbą argumentów.Kredyty dla @tomrunia na https://gist.github.com/KartikTalwar/4393116
Zwróć uwagę
--delete
, nie używaj go, jeśli chcesz przechowywać zbędne pliki w katalogach docelowychźródło