Czy jest coś prostszego niż FTP do wysyłania plików między maszynami z systemem Linux?


1

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?


powinieneś sformułować „prostsze” w sposób, który opisuje, jaki masz problem z ftp lub obecną konfiguracją. a jeśli twoje pliki mają po 5 MB liczb lub bajtów (5 * 10 ^ 6 plików lub plików 5 * 10 ^ 6 bajtów)
akira

1
Trivial FTP (protokół) stworzony z myślą o jego prostocie.
Polubowny

Odpowiedzi:


5

Rozproszony system plików lub użyj go crontabdo 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 !!!


„prostsze”… a ty proponujesz „rozproszony system plików”? ORAZ / LUB „scp” i „rsync”? naprawdę? :)
akira

2
bezproblemowo jest łatwiej.
c2h2

2
crontab ze scp i kluczem wstępnym byłby jednym z najprostszych ustawień i bardzo niskich
wymagań

@Sibster: crontab z ftp jest tak prosty jak scp.
akira

1
@akira, serwery ftp mają długą historię luk w zabezpieczeniach, a wszystkie serwery linuxowe mają / potrzebują ssh, niewielu potrzebuje ftp, więc po co instalować inny możliwy wektor ataku
Sibster

1

netcatjest prostsze, ponieważ jest to po prostu nieprzetworzone bajty (ala cat) nad drutem. ale potrzebowałbyś też odsłuchu netcatpo 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.


1

Powiedziałbym, że rsyncjest 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ć.


Po prostu i rozszerzenie tego, jeśli używasz czegoś takiego jak openfiler.com , możesz mieć współużytkowanie NFS na każdym z twoich serwerów i będzie on obsługiwał blokowanie plików, więc oba (wszystkie) serwery będą miały dostęp do odczytu / zapisu
sgtbeano

1

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



0

Jeśli transfer odbywa się tylko w jednym kierunku, możesz rozwinąć prosty serwer HTTP, na przykład mini-httpdopublikować pliki w katalogu, który je mini-httpdudostępnia, i pozwolić odbiorcy je pobrać wget. mini-httpdjest 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ć.


Wydaje mi się, że jest jeden linijka python dla serwera. Używam lighttpd
Rob

python -m SimpleHTTPServer
akira

0

wput to klient ftp z wiersza poleceń, który ułatwia przesyłanie plików za pomocą jednego polecenia:

wput myfile.tar ftp://user:pass@example.com/mydir/

Oczywiście możesz zrobić to samo z drugiej strony, używając wget / curl i serwera WWW.


-1

Inną opcją jest MidnightCommander(mc). Jeśli dorastałeś z DOS i NortonCommander.


która część mcjest opcją? bo ma zintegrowane ftp?
akira

Myślałem o połączeniu powłoki w MC. To prawda, że ​​ma także ftp.
ott--
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.