Muszę przenieść pliki z jednego serwera CentOS na inny. Przeniesie 5 MB plików co 10 minut. Nie potrzebujesz szyfrowania.
Co było łatwego w szybkim przesyłaniu plików?
Czy istnieje coś prostszego niż ftp?
Dzięki!
Muszę przenieść pliki z jednego serwera CentOS na inny. Przeniesie 5 MB plików co 10 minut. Nie potrzebujesz szyfrowania.
Co było łatwego w szybkim przesyłaniu plików?
Czy istnieje coś prostszego niż ftp?
Dzięki!
Odpowiedzi:
rsync
Używałbym rsync przed użyciem ftp lub tftp.
Więcej opcji i (z mojego doświadczenia) bardziej niezawodny transfer.
tar przez ssh jest w porządku, ale tar przez TCP przez netcat jest tak niski, jak to tylko możliwe! Jeśli jest to jednorazowa sprawa, daj temu szansę:
Na odbiorniku:
nc -l -p 8989 | tar x
Na nadawcy:
tar cf - /source-path | nc (receiving host ip address) 8989
Jeśli robisz to regularnie, prawdopodobnie użyłbym rsync.
Dwie osoby wspominały o tar nad ssh, ale nie powiedziały, jak to zrobić. Dla przypomnienia, podstawową procedurą jest uruchomienie:
tar cf - files... | ssh remotehost 'cd /destination && tar xvf -'
Lub, jeśli chcesz rozpocząć przelewy od strony odbierającej:
ssh remotehost 'cd /source && tar cf - files' | tar xvf -
Zaletą robienia tego w ten sposób w porównaniu z rozwiązaniem Netcat firmy Evan jest to, że wszystko można uruchomić z jednego komputera; nie musisz koordynować dwóch wywołań netcat. Jeśli potrzebujesz, aby działało to automatycznie, możesz skonfigurować klucz ssh, który pozwala nawiązywać połączenia bez hasła, i używać tego klucza do tych połączeń.
ssh ma opcję -C do kompresji strumienia danych, lub możesz użyć wbudowanej funkcji kompresji GNU tar:
tar zcf - files... | ssh remotehost 'cd /destination && tar xzvf -'
Rsync to kolejna opcja, ale jego mocną stroną jest aktualizacja plików, które już istnieją na końcu odbierającym. Odkryłem, że jest wolniejszy niż scp lub tar / ssh podczas używania go do przesyłania plików, które jeszcze nie istnieją na drugim końcu.
Użyję scplub tarponad ssh, uczciwie. Szyfrowanie spowalnia rzeczy, ale łatwość konfiguracji i użytkowania, niezawodność i (subiektywnie, oczywiście) znajomość sprawiają, że jestem gotów podjąć trafienie, chyba że naprawdę potrzebuję takiej prędkości.
Możesz przyspieszyć transfer ssh, mówiąc mu, aby używał szybszego szyfru niż domyślny. Domyślnie jest to zwykle 3desi możesz to zrobić -c des, więc będzie to oczywiście szybsze i -c blowfishjest również przedstawiane jako szybkie, chociaż nie przetestowałem tego dokładnie.
(W czasach SSHv1 często można było to zrobić -c none, ale chyba ktoś uznał, że to złe juju.)
Jeśli musisz przejść przez scp / ssh, moje eksperymenty pokazują, że najszybszym domyślnie włączonym szyfrem jest RC4. Podajesz szyfr za pomocą „ -c arcfour ” w komendzie ssh / scp:
do wstępnej kopii:
scp -c arcfour -r foo/ desthost:/destdirdo aktualizacji:
rsync -e 'ssh -c arcfour' -r foo/ desthost:/destdirRsync to dobry sposób, ponieważ jeśli przesyłasz te same pliki więcej niż jeden raz, przyspieszy to kopiowanie, jak pokazano w tym cytacie ze strony podręcznika man.
rsync is a program that behaves in much the same way that rcp does, but
has many more options and uses the rsync remote-update protocol to
greatly speed up file transfers when the destination file is being
updated.
The rsync remote-update protocol allows rsync to transfer just the dif-
ferences between two sets of files across the network connection, using
an efficient checksum-search algorithm described in the technical
report that accompanies this package.
FTP jest dość prosty, ale jeszcze prostszym sposobem może być utworzenie udziału NFS na jednym komputerze i zamontowanie go na drugim. Następnie skopiowanie plików będzie polegało na wykonaniu cp z jednego katalogu do drugiego.
Jeśli chcesz prędkości, możesz użyć netcata i tar. Będzie szybszy niż ssh, rsync lub scp w sieci lokalnej, w której szyfrowanie nie stanowi problemu. Google „Netcat tar”.
nc -l -p 7878 | tar -C /target/dir -xzf -
tar -cz /source/dir | nc DestinationServer 7878
To oczywiście wymaga, aby Netcat został faktycznie zainstalowany. Google „Netcat tar”, aby uzyskać więcej informacji.
Wierzę, że już rozwiązałeś problem, ale w przypadku, gdy twój ssh działa na innym porcie (nie na standardowym porcie 22), możesz użyć tego
rsync -avz --rsh = 'ssh -pXXXXX' / local / dir / root@192.168.1.2: / remote / dir
Uwaga: - zastąp XXXXX numerem portu - zastąp 192.16.1.2 poprawnym adresem IP zdalnego serwera
https://www.npmjs.org/package/gist-cli
https://github.com/settings/applications#personal-access-tokens
albo ten:
https://github.com/defunkt/gist
Użyj polecenia gist, aby przesłać i pobrać