大きなファイルのsmbclient代替


11

smbclientを使用して、LinuxシステムからWindows共有に毎晩大きなファイル(80GB)のセットを転送しています。最近、何らかの理由でI / Oタイムアウトが発生しています。

cli_push returned NT_STATUS_IO_TIMEOUT

これにより、アクティブなファイル転送が中止され、Windows共有から削除されます。

これは、未解決のSambaバグ8498(または多分そうではない)が原因である可能性があります。Windowsシステムは私の制御下にないため、scpサーバー(scpまたはsftpを使用)をインストールできず、MicrosoftのNFSの実装に依存したくありません。

定期的にネットワークを介してLinuxからWindowsに80 GBのデータを確実に移動できる単純で標準的な代替手段はありますか(ネットワークはGBイーサネットなので、帯域幅は問題ではありません)?


部分モードを有効にしてrsyncなどのツールを使用することを検討してください。WinScpも役立つはずです。または、UnixのNFSとWindowsのCIFSを備えた共通のNASストレージを提供します。これにより、同じネットワークの場合、トランスファーをまったく必要としません。最善の方法は、他のネットワークに備えて急流をセットアップすることです。;-)
Nikhil Mulley

グーグルで「123goファイル転送プログラム」の検索を偶然見つけました
Nikhil

回答:


9

smbclientでこれらのソケットオプションを使用してみてください

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

エラーなしでWindowsからLinuxメディアサーバーに40 GB以上のファイルを定期的にコピーします。ギガビットスイッチ経由で接続されたマシンでの典型的な転送速度は85 MB /秒です。


1
これをありがとう-これは私にとってエラーを取り除きました; そして、UbunutuからWindows共有に2Gファイルを正しくコピーしました。
monojohnny 2013年

私はこれと、SO_RCVBUFとSO_SNDBUFの値を調整する他のバリエーションを、運がなくても試しました。私がアップロードしようとしているファイルは、パケット損失ゼロのローカルネットワーク経由で約8ギガです。
mhvelplund 2016

2

使用する curl

私は、WindowsにアーチのLinuxから97 MIBファイルを転送しようとしてsmbclientのを呼び出すsmbclientのバージョン4.9.4を実行している --socket-options='TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=131072 SO_SNDBUF=131072' ユーザーBSDが推奨されているように、まだ失敗しましたcli_push returned NT_STATUS_IO_TIMEOUT

バージョン7.40以降、curlはプロトコルをサポートしています。

したがって、これを使用してmoderately_sized_file、LinuxからOurRemoteDirectoryWindowsマシンのサービスにをアップロードしました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/'

0

多分あなたはあなたのLinuxサーバーにftpサーバーをインストールして、それを毎晩送るようにWindows管理者に頼むことができますか?

FTPには、大きなファイルを転送するためのいくつかの便利な機能と、一時停止/再開メカニズムがあります。この大きなファイルの場合、ネットワークハードウェアが非アクティブな接続を早めにシャットダウンしないように注意する必要があります。transfertが終了する前に制御接続を閉じることができます。


ファイルはLinuxからWindowsへと逆方向に進んでいます
Ex Umbris

0

もし

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>

仮想マシンの巨大なファイル(> 200 Tb)をコピーするのに役立ちます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.