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 , 컬은 지원 의 SMB 프로토콜을.
따라서 나는 이것을 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 이상)을 복사하는 데 도움이됩니다.