Estou usando o smbclient para transferir um conjunto de arquivos grandes (80 GB) todas as noites de um sistema Linux para um compartilhamento do Windows. Ultimamente, por qualquer motivo, tenho recebido tempos limite de E / S:
cli_push returned NT_STATUS_IO_TIMEOUT
o que faz com que a transferência ativa de arquivos seja abortada e excluída do compartilhamento do Windows.
Isso pode ser devido ao erro 8498 do Samba não resolvido (ou talvez não). O sistema Windows não está sob meu controle, portanto não consigo instalar um servidor ssh (para usar scp ou sftp) e não quero depender da implementação do NFS pela Microsoft.
Existe outra alternativa simples e padrão que me permita mover 80GB de dados de maneira confiável do Linux para o Windows pela rede regularmente (a rede é ethernet de GB, portanto a largura de banda não é um problema)?
fonte
Respostas:
Tente usar essas opções de soquete no smbclient
Eu copio regularmente arquivos de mais de 40 GB do Windows para o servidor de mídia Linux sem erros, a taxa de transferência típica é de 85 MB / s com máquinas conectadas via switch gigabit.
fonte
Usando
curl
Estou executando o smbclient versão 4.9.4 tentando transferir um arquivo 97 MiB do Arch Linux para o Windows e chamando o smbclient
--socket-options='TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=131072 SO_SNDBUF=131072'
como o usuário recomendado pelo bsd ainda falhoucli_push returned NT_STATUS_IO_TIMEOUT
.Desde a versão 7.40 , o curl suporta o protocolo smb .
Portanto, usei isso para fazer upload
moderately_sized_file
do Linux para o serviçoOurRemoteDirectory
na máquina Windows em172.16.17.52
:Para mim, o curl carregou o arquivo de forma confiável a cada vez e também exibe o progresso do upload, o que é bom.
Observe que o curl ainda não suporta a criação de diretórios no host remoto.
Consequentemente, pode ser necessário criar
/Path/To/Dir/
usando o seguinte comando (massmbclient mkdir
funcionou sem problemas até agora):fonte
Talvez você possa instalar um servidor ftp no seu servidor linux e pedir ao administrador do Windows para enviar o arquivo todas as noites?
O FTP possui algumas funções úteis para transferir arquivos grandes e um mecanismo de pausa / retomada. Para arquivos tão grandes, você deve ter o cuidado de não ter um hardware de rede desligando conexões inativas muito cedo. Pode fechar sua conexão de controle antes que a transferência termine.
fonte
E se
ainda retorna
cli_push returned NT_STATUS_IO_TIMEOUT
basta adicionar uma opção de tempo limite
-t <timeout in seconds>
Isso me ajuda a copiar arquivos grandes (> 200 TB) de máquinas virtuais
fonte