Saya menggunakan smbclient untuk mentransfer satu set file besar (80GB) setiap malam dari sistem Linux ke Windows share. Akhir-akhir ini, untuk alasan apa pun, saya mendapatkan batas waktu I / O:
cli_push returned NT_STATUS_IO_TIMEOUT
yang menyebabkan transfer file aktif dibatalkan dan dihapus dari Windows share.
Ini mungkin karena bug Samba 8498 yang tidak terselesaikan (atau mungkin tidak). Sistem Windows tidak di bawah kendali saya, jadi saya tidak dapat menginstal server ssh (menggunakan scp atau sftp), dan tidak ingin bergantung pada implementasi NFS dari Microsoft.
Apakah ada alternatif sederhana dan standar yang akan memungkinkan saya memindahkan 80GB data dengan andal dari Linux ke Windows melalui jaringan secara teratur (jaringannya adalah GB ethernet, jadi bandwidth bukan masalah)?
sumber
Jawaban:
Coba gunakan opsi soket ini di smbclient
Saya secara teratur menyalin 40 + GB file dari Windows ke server media Linux tanpa kesalahan, kecepatan transfer tipikal adalah 85MB / s dengan mesin yang terhubung melalui sakelar gigabit.
sumber
Menggunakan
curl
Saya menjalankan versi smbclient 4.9.4 mencoba untuk mentransfer file 97 MiB dari Arch Linux ke Windows dan memanggil smbclient dengan
--socket-options='TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=131072 SO_SNDBUF=131072'
sebagai bsd yang direkomendasikan pengguna masih gagalcli_push returned NT_STATUS_IO_TIMEOUT
.Sejak versi 7.40 , curl mendukung protokol seseorang .
Jadi, saya menggunakan ini untuk mengunggah
moderately_sized_file
dari Linux ke layananOurRemoteDirectory
di mesin Windows di172.16.17.52
:Bagi saya, curl telah mengunggah file dengan andal setiap kali dan juga menampilkan kemajuan unggahan, yang bagus.
Perhatikan bahwa curl belum mendukung pembuatan direktori pada host jarak jauh.
Oleh karena itu, Anda mungkin perlu membuat
/Path/To/Dir/
menggunakan perintah berikut (tetapismbclient mkdir
sejauh ini telah bekerja tanpa masalah):sumber
Mungkin Anda dapat menginstal server ftp di server linux Anda, dan meminta admin Windows untuk mengirim file itu setiap malam?
FTP memiliki beberapa fungsi yang berguna untuk mentransfer file besar dan mekanisme jeda / melanjutkan. Untuk file sebesar ini, Anda harus berhati-hati untuk tidak memiliki perangkat keras jaringan mematikan koneksi yang tidak aktif terlalu dini. Itu dapat menutup koneksi kontrol Anda sebelum transfert berakhir.
sumber
jika
masih kembali
cli_push returned NT_STATUS_IO_TIMEOUT
cukup tambahkan opsi batas waktu
-t <timeout in seconds>
Ini membantu saya untuk menyalin file besar (> 200 Tb) dari mesin virtual
sumber