Muszę przenieść pliki z jednego serwera CentOS na inny. Przesyłam 5 MB plików co 10 minut. Nie potrzebuję szyfrowania.
Jaki jest łatwy sposób na szybki transfer tych plików? Czy istnieje coś prostszego niż FTP?
Muszę przenieść pliki z jednego serwera CentOS na inny. Przesyłam 5 MB plików co 10 minut. Nie potrzebuję szyfrowania.
Jaki jest łatwy sposób na szybki transfer tych plików? Czy istnieje coś prostszego niż FTP?
Odpowiedzi:
Rozproszony system plików lub użyj go crontab
do wykonania zadania scp
/ rsync
.
scp = bezpieczna kopia zdalna, musisz skonfigurować plik tożsamości i klucz uwierzytelniający do uwierzytelnienia klucza, tj. bez hasła
praca crontab:
crontab -e
wstaw to do pliku (dla):
*/10 * * * * scp me@remote.machine:/remote/path/file /save/to/path
JEŻELI wszystko jest trudniejsze niż ftp, użyj pendrive'a USB !!!
netcat
jest prostsze, ponieważ jest to po prostu nieprzetworzone bajty (ala cat
) nad drutem. ale potrzebowałbyś też odsłuchu netcat
po drugiej stronie… „we właściwym czasie” :)
receiver> nc -l -s 0.0.0.0 -p 12345
a następnie wysyłasz plik za pośrednictwem
sender> nc receiver 12345 < file
jest to najprostszy sposób przesyłania plików z jednego komputera na drugi. bez uwierzytelnienia, bez szyfrowania, tylko surowe bajty.
ale nie polecam tego w żaden sposób, aby niezawodnie przesyłać pliki przez sieć. użyj ssh / scp.
Powiedziałbym, że rsync
jest to najlepsza droga.
Znacznie łatwiej jest napisać skrypt xfer niż ftp i jest całkiem sprytny, jeśli chodzi o jego działanie (wznawianie, różnice itp.). Możesz także ustawić, aby okresowo skanował sam katalog i ładował nowe / zmienione pliki, dzięki czemu możesz pominąć crontab.
Zwykle rsync jest elegancki, więc jeśli chcesz zobaczyć, co robi, potrzebujesz
Dość ładny przegląd / tutorial: http://everythinglinux.org/rsync/
(copy recursively, keep symlinks/users, verbose, checksum)
rsync --progress -avz
/copy/files/*.tar.gz
username@other-server:/destination/folder
Jeśli chodzi o rozproszone systemy plików, brzmi to skomplikowanie. Czy możesz po prostu zamontować ten sam wolumin NFS na obu komputerach? Jeśli tylko jeden pisze, nie masz się czym martwić.
Czy chcesz, żeby było automatycznie?
sshfs to dobry sposób, jeśli nie, po prostu zainstaluj sshfs i uruchom
mkdir /mount/point
sshfs user@server:/remote/path /mount/point
i wpisz hasło w wierszu polecenia, wtedy ścieżka zdalna wygląda jak lokalny katalog na twoim komputerze. Oczywiście musisz mieć serwer ssh na zdalnym końcu. OpenSSH to dobra alternatywa
Inną opcją jest skonfigurowanie serwera NFS w jednym węźle i zamontowanie go w drugim węźle.
Jeśli transfer odbywa się tylko w jednym kierunku, możesz rozwinąć prosty serwer HTTP, na przykład mini-httpd
opublikować pliki w katalogu, który je mini-httpd
udostępnia, i pozwolić odbiorcy je pobrać wget
. mini-httpd
jest pierwszą rzeczą, która przychodzi mi na myśl, gdy myślę o prostym serwerze HTTP, ale jestem pewien, że są prostsze (czy nie możesz technicznie mieć konfiguracji serwera WWW bash
? czy nie jest to jak linijka Perla gdzieś, która implementuje prosty serwer internetowy?)
Jeśli masz już serwer WWW na tym hoście, który nie jest publicznie dostępny, możesz go ponownie użyć.
python -m SimpleHTTPServer