dosyayı Windows'tan Linux'a kopyala


16

Bir senaryo yazıyorum. bir linux makinesi çalıştıracaktır. hedefleri linux, solaris ve pencereleri içerir.

* Nix arasında dosya kopyalamak için scp kullanabileceğimi biliyorum. ama pencereden dosya kopyalamaya ne dersiniz?

Bu pencereler, işletim sistemi sık sık yeniden yüklenebileceğinden belirli bir yazılımın yüklenmesi beklenemeyen test makineleridir.

Yanıtlar:


21

Samba kullan .

Samba, Windows ile uyumlu bir dosya paylaşım hizmeti sunar.

Sen (örneğin bir dizin paylaşabilirsiniz /srv/samba/sharenameLinux bilgisayarda) ve bunun gibi Windows'tan erişmek: \\linuxservername\sharename. Windows tarafında ekstra bir yazılıma ihtiyaç duymaz.

Samba çoğu Linux dağıtımına dahildir. Paket yöneticisini kullanarak kurun, örneğin:

  • Ubuntu: sudo apt-get install samba smbclient

  • SUSE: zypper samba

  • CentOS / RedHat: yum install samba

Samba'yı yapılandırmak için, bkz:

veya dağıtımınız için bir kılavuz bulmak üzere Google'da arama yapın.

Linux güvenlik duvarınızı, bir tane kullanmanız durumunda, 137 / tcp, 138 / tcp, 139 / tcp ve 445 / tcp bağlantı noktalarına bağlantı kabul edecek şekilde yapılandırmanız gerekebileceğini unutmayın ( buna ve buna bakın ).


Yukarıdaki açıklamada Linux bilgisayar bir Samba sunucusudur ve Windows ondan bir paylaşım sağlar.

Aşağıdaki yorumunuzda , aktarım işlemini otomatikleştirmek istediğinizden bahsediyorsunuz . Bu, rolleri tersine çevirerek elde edilebilir, böylece Windows sunucu olarak çalışır ve Linux bunu kullanarak bağlanır smbclient.

İle smbclienttüm Windows paylaşımına bağlamaya gerek yoktur. Örneğin, almak C:\Directory\file.txtve /tmpLinux bilgisayarınıza kopyalamak için şunu yapın :

smbclient '//windowsserver/c$' -c 'lcd /tmp; cd Directory; get file.txt' -U administrator%password

-cYürütme komutu. Ayrıntılar man smbclientiçin bakınız.

-U Olarak belirtilen paylaşıma erişmek için kullanıcı adı ve şifre username%password

Gereksinimlerinize göre değiştirin ve betiğinize ekleyin.


@max, Harika cevaplarınız için teşekkürler. Samba'nın Windows ile çalışabileceğini biliyorum. Ancak yine de bir dosyayı kopyalarken insanın dahil olması gerekir. Betiğim bir linux üzerinde çalışacağı ve makine samba yüklediğinden, bir betiğin kopyalama işini nasıl yapmasına izin verebilirim? Görünüşe göre Windows diskini Linux'a daha iyi monte ettim, o zaman Linux'a erişebilirim. Samba bunu yapabilir mi?
Alex

Evet, Samba bunu yapabilir. Daha da iyisi, Windows paylaşımını bağlamanız gerekmez. Sen kullanabilirsiniz smbclientbir dosya ve bağlantı kesme kopyalama Windows paylaşımına bağlanmak için. Cevabımı düzenledim, bir göz atın.
Mart'ta

Rica ederim, yardım edebileceğime sevindim.
13'te jaume

1
Özellikle -cbasit durumlarda seçenek kullanmaya değer. Makinemde şifre çıplak bir argüman olarak geliyor (herhangi bir seçenek olmadan). Ayrıca - Kimlik bilgilerini arayarak komut satırı okuyucularından ( örneğin psveya kullanarak) uzak tutmayı tercih ederim . [h]top-U $(cat .username) $(cat .password)
Tomasz Gandor

3

Belirli bir yazılımın yüklenmesini bekleyemeyeceğinizi biliyorum, ancak Windows için belirli bir kurulum gerektirmeyen SSH / SCP / SFTP istemcileri var; yalnızca yürütülebilir dosya kullanılabilir. Devam etmekte olduğum bir şey , arkadaşı ve araçlarıyla PuTTY'dir , ancak alternatiflerin var olduğundan eminim. ve tamamen komut satırından sürülebilir ve bu nedenle otomasyon görevleri için çok uygundur. Her ikisinin de "tüm etkileşimli istemleri devre dışı bırak" olarak tanımlanan ve neredeyse kesinlikle kaldırabileceği bir anahtarı vardır.pscppsftppscppsftp-batch

Muhtemelen zaten sunucuda kurulu ve yapılandırılmış bir SSH / SCP / SFTP sunucunuz olduğundan, bu dosyaları kopyalamak amacıyla her iki ana bilgisayara da herhangi bir yazılım yüklemek zorunda kalmazsınız.

Başka bir olumsuzluk da PuTTY'nin izinli bir lisans altında açık kaynak olması olabilir, bu yüzden kutunun dışında istediğiniz şeyi yapmazsa, tercih ettiğiniz şekilde hareket etmesini sağlamak nispeten kolay olmalıdır.


1
Tavsiyeniz için teşekkürler. Ben pscp ve psftp deneyeceğim. Onlar da harika araçlardır.
Alex

1

Ben bir CentOS 6kullanıcıyım, bu yüzden bu yöntemi denedimCentOS 6

Samba'yı kullanarak yükleyin

[root @ server ~] # yum samba yükleyin

Onay için sorgula

[root @ server ~] # rpm -qa samba
samba-3.5.10-125.el6.i686

Bir Samba Kullanıcısı oluşturun.

[root @ server ~] # useradd sambashare

Şimdi smbpasswd komutunu kullanarak sambashare kullanıcı adı için samba şifresi oluşturun.

[root @ server ~] # smbpasswd -a sambashare
Yeni KOBİ şifresi:
Yeni SMB şifresini tekrar yazın:
Sambashare kullanıcısı eklendi.

Samba paylaşım dizini oluşturma

[root @ server ~] # mkdir / paylaş

paylaşım klasörünün sahipliğini değiştirme

[root @ server ~] # chown -R sambashare: sambashare / paylaş /

Dosyayı açın /etc/samba/smb.confve aşağıdaki satırları ekleyin.

[Paylaş]
comment = Paylaş
yol = / paylaşım
yazılabilir = evet
geçerli kullanıcılar = sambashare

Samba hizmetini başlat

[root @ server ~] # service smb restart
KOBİ hizmetlerini kapatma: [Tamam]
KOBİ hizmetlerini başlatma: [Tamam]

testparmKomutunuzu kullanarak yapılandırmanızı kontrol edin

.
.
[Paylaş]
comment = paylaş
yol = / paylaşım
geçerli kullanıcılar = sambashare
salt okunur = Hayır

Windows sisteminde bunu şunu yazın run

resim açıklamasını buraya girin

Şimdi samba kullanıcı adını ve şifresini girin

resim açıklamasını buraya girin

Bitirdiniz

resim açıklamasını buraya girin


Çok teşekkür ederim, maks. bir acemi için çok canlı öğretici için.
Alex

@Alex rica ederim ... :-)
max
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.