[unix] 큰 파일을위한 smbclient 대안

smbclient를 사용하여 야간에 큰 파일 세트 (80GB)를 Linux 시스템에서 Windows 공유로 전송하고 있습니다. 최근에 어떤 이유로 든 I / O 시간 초과가 발생했습니다.

cli_push returned NT_STATUS_IO_TIMEOUT

활성 파일 전송이 중단되고 Windows 공유에서 삭제됩니다.

이것은 해결되지 않은 Samba 버그 8498 때문일 수도 있고 아닐 수도 있습니다 . Windows 시스템을 제어 할 수 없으므로 scp 또는 sftp를 사용하기 위해 ssh 서버를 설치할 수 없으며 Microsoft의 NFS 구현에 의존하고 싶지 않습니다.

정기적으로 네트워크를 통해 Linux에서 Windows로 80GB의 데이터를 안정적으로 이동할 수있는 또 다른 간단한 표준 대안이 있습니까? (네트워크는 GB 이더넷이므로 대역폭에 문제가 없습니다)?



답변

smbclient에서이 소켓 옵션을 사용해보십시오

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

40 + GB 파일을 Windows에서 Linux 미디어 서버로 정기적으로 오류없이 복사합니다. 일반적인 전송 속도는 기가비트 스위치를 통해 연결된 컴퓨터에서 85MB / s입니다.


답변

사용 curl

아치 리눅스에서 Windows로 97 MiB 파일을 전송하려고 시도하는 smbclient 버전 4.9.4를 실행 중이며 --socket-options='TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=131072 SO_SNDBUF=131072' 사용자 bsd 권장으로 smbclient를 호출하는 데 여전히 실패했습니다 cli_push returned NT_STATUS_IO_TIMEOUT.

이후 버전 7.40 , 컬은 지원 프로토콜을.

따라서 나는 이것을 moderately_sized_file리눅스 OurRemoteDirectory에서 Windows 머신 의 서비스 로 업로드하기 위해 사용 했다 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/

나를 위해 curl은 매번 파일을 안정적으로 업로드했으며 업로드 진행률도 표시합니다.

curl 은 아직 원격 호스트에서 디렉토리 작성을 지원하지 않습니다 .

결과적으로 /Path/To/Dir/다음 명령 을 사용 하여 작성해야 할 수도 있습니다 (그러나 smbclient mkdir지금까지는 문제없이 작동했습니다).

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


답변

Linux 서버에 ftp 서버를 설치하고 Windows 관리자에게 파일을 매일 밤 보내도록 요청할 수 있습니까?

FTP에는 큰 파일을 전송하는 데 유용한 기능과 일시 중지 / 다시 시작 메커니즘이 있습니다. 이렇게 큰 파일의 경우 네트워크 하드웨어가 비활성 연결을 너무 일찍 종료 하지 않도록 주의해야합니다 . 전송이 끝나기 전에 제어 연결을 닫을 수 있습니다 .


답변

만약

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

여전히 돌아온다 cli_push returned NT_STATUS_IO_TIMEOUT

시간 초과 옵션을 추가하십시오. -t <timeout in seconds>

가상 머신의 대용량 파일 (> 200TB 이상)을 복사하는 데 도움이됩니다.


답변