büyük dosyalar için smbclient alternatifi


11

Bir Linux sisteminden bir Windows paylaşımına bir dizi büyük dosyayı (80 GB) aktarmak için smbclient kullanıyorum. Son zamanlarda, herhangi bir nedenle, G / Ç zaman aşımları alıyorum:

cli_push returned NT_STATUS_IO_TIMEOUT

etkin dosya aktarımının iptal edilmesine ve Windows paylaşımından silinmesine neden olur.

Bu, çözülmemiş Samba hatası 8498'den kaynaklanıyor olabilir (veya olmayabilir). Windows sistemi kontrolüm altında değil, bu yüzden (scp veya sftp kullanmak için) bir ssh sunucusu yükleyemiyorum ve Microsoft'un NFS uygulamasına bağımlı olmak istemiyorum.

80 GB veriyi düzenli olarak ağ üzerinden Linux'tan Windows'a güvenilir bir şekilde taşımama izin verecek başka bir basit, standart alternatif var mı (ağ GB ethernet, bu yüzden bant genişliği sorun değil)?


kısmi mod etkinken rsync gibi araçları kullanmayı düşünün. WinScp bile yardımcı olmalı. Veya Unix'te NFS ve Windows'ta CIFS ile ortak bir NAS depolama alanı sağlayın, bu nedenle aynı ağsa her durumda aktarmaya gerek yoktur. En iyisi, diğer ağı bozmak için bir torrent kurmaktır. ;-)
Nikhil Mulley

Google'da "
123go

Yanıtlar:


9

Smbclient üzerinde bu soket seçeneklerini kullanmayı deneyin

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

40 + GB dosyalarını düzenli olarak Windows'tan Linux medya sunucusuna hatasız kopyalarım, gigabit anahtarı ile bağlı makinelerle tipik aktarım hızı 85MB / s'dir.


1
Bunun için teşekkürler - bu benim için hatadan kurtuldu; ve 2G dosyasını bir Ubunutu'dan Windows Share'e doğru bir şekilde kopyaladı.
monojohnny

Şans olmadan SO_RCVBUF ve SO_SNDBUF için değerleri ayarlama bu ve diğer varyasyonları denedim. Yüklemeye çalıştığım dosya, sıfır paket kaybı olan yerel bir ağ üzerinden yaklaşık 8gig.
mhvelplund

2

kullanma curl

Ben smbclient sürüm 4.9.4 Arch Linux Windows 95 aktarmaya çalışıyorum ve --socket-options='TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=131072 SO_SNDBUF=131072' kullanıcı bsd önerilen olarak ile smbclient çağırmak hala başarısız olarak çalışıyorum cli_push returned NT_STATUS_IO_TIMEOUT.

7.40 sürümünden bu yana , curl protokolünü desteklemektedir .

Bu nedenle, moderately_sized_fileLinux'tan OurRemoteDirectoryWindows makinesindeki hizmete şu adresten yüklemek için kullandım 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/

Benim için curl, dosyayı her seferinde güvenilir bir şekilde yükledi ve ayrıca yükleme ilerlemesini görüntülüyor, bu da güzel.

Curl'un uzak ana bilgisayarda dizin oluşturmayı henüz desteklemediğini unutmayın .

Sonuç olarak, /Path/To/Dir/aşağıdaki komutu kullanarak oluşturmanız gerekebilir (ancak smbclient mkdirşu ana kadar sorunsuz çalışmıştır):

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

0

Belki linux sunucunuza bir ftp sunucusu kurabilir ve Windows yöneticisinden dosyayı her gece göndermesini isteyebilirsiniz?

FTP, büyük dosyaları aktarmak için bazı yararlı işlevlere ve bir duraklatma / sürdürme mekanizmasına sahiptir. Dosyada bu büyük için, özen değil çok erken inaktif bağlantıları kapatılıyor bir ağ donanıma sahip. Aktarım bitmeden kontrol bağlantınızı kapatabilir .


Dosyalar Linux'tan Windows'a diğer yoldan gidiyor
Ex Umbris

0

Eğer

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

hala geri dönüyor cli_push returned NT_STATUS_IO_TIMEOUT

sadece bir zaman aşımı seçeneği ekleyin -t <timeout in seconds>

Sanal makinelerin büyük dosyalarını (> 200 Tb) kopyalamama yardımcı oluyor

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.