alternativa smbclient per file di grandi dimensioni


11

Sto usando smbclient per trasferire una serie di file di grandi dimensioni (80 GB) ogni notte da un sistema Linux a una condivisione Windows. Ultimamente, per qualsiasi motivo, ho ricevuto timeout I / O:

cli_push returned NT_STATUS_IO_TIMEOUT

che provoca l'interruzione e l'eliminazione del trasferimento di file attivo dalla condivisione di Windows.

Ciò potrebbe essere dovuto al bug irrisolto di Samba 8498 (o forse no). Il sistema Windows non è sotto il mio controllo, quindi non posso installare un server ssh (per usare scp o sftp) e non voglio dipendere dall'implementazione di NFS da parte di Microsoft.

Esiste un'altra alternativa semplice e standard che mi consenta di spostare regolarmente 80 GB di dati da Linux a Windows sulla rete (la rete è ethernet GB, quindi la larghezza di banda non è un problema)?


considerare l'utilizzo di strumenti come rsync con modalità parziale abilitata. Anche WinScp dovrebbe aiutare. O fornire un archivio NAS comune con NFS su Unix e CIFS su Windows, quindi non è necessario trasferirli in tutti i casi se si tratta della stessa rete. La cosa migliore è impostare un torrent, in caso di altra rete. ;-)
Nikhil Mulley,

appena imbattuto nella ricerca "123go file transfer program" su google
Nikhil Mulley,

Risposte:


9

Prova a usare queste opzioni socket su smbclient

smbclient --socket-options='TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=131072 SO_SNDBUF=131072'

Copio regolarmente 40 + GB di file da Windows al server multimediale Linux senza errori, la velocità di trasferimento tipica è di 85 MB / s con macchine collegate tramite switch Gigabit.


1
Grazie per questo - questo mi ha sbarazzato dell'errore per me; e correttamente copiato un file 2G da un Ubunutu a una condivisione di Windows.
monojohnny,

Ho provato questa e altre varianti di regolazione dei valori per SO_RCVBUF e SO_SNDBUF senza fortuna. Il file che sto tentando di caricare è di circa 8 gig su una rete locale senza perdita di pacchetti.
mhvelplund,

2

utilizzando curl

Sto eseguendo smbclient versione 4.9.4 cercando di trasferire un file 97 MiB da Arch Linux a Windows e chiamando smbclient con --socket-options='TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=131072 SO_SNDBUF=131072' come raccomandato dall'utente bsd non è ancora riuscito cli_push returned NT_STATUS_IO_TIMEOUT.

Dalla versione 7.40 , curl supporta il protocollo .

Quindi, ho usato questo per caricare il moderately_sized_fileda Linux al servizio OurRemoteDirectorysul computer Windows su 172.16.17.52:

curl --upload-file /home/me/moderately_sized_file --user "OurWindowsDomain/MyUserName:MyPassword" smb://172.16.17.52/OurRemoteDirectory/Path/To/Dir/

Per me, curl ha caricato il file in modo affidabile ogni volta e mostra anche l'avanzamento del caricamento, il che è bello.

Si noti che l'arricciatura non supporta ancora la creazione di directory sull'host remoto.

Di conseguenza, potrebbe essere necessario creare /Path/To/Dir/utilizzando il comando seguente (ma smbclient mkdirfinora ha funzionato senza problemi):

smbclient //172.16.17.52/OurRemoteDirectory/ -U MyUserName%MyPassword -W OurWindowsDomain -c 'mkdir Path/To/Dir/'

0

Forse puoi installare un server ftp sul tuo server Linux e chiedere all'amministratore di Windows di inviarlo il file ogni notte?

FTP ha alcune utili funzioni per il trasferimento di file di grandi dimensioni e un meccanismo di pausa / ripresa. Per file di dimensioni così grandi, devi fare attenzione a non avere un hardware di rete che arresti le connessioni inattive troppo presto. Può chiudere la connessione di controllo prima del termine del trasferimento.


I file vanno dall'altra parte, da Linux a Windows
Ex Umbris,

0

Se

smbclient --socket-options='TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=131072 SO_SNDBUF=131072'

ritorna ancora cli_push returned NT_STATUS_IO_TIMEOUT

basta aggiungere un'opzione di timeout -t <timeout in seconds>

Mi aiuta a copiare enormi file (> 200 Tb) di macchine virtuali

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.