Usa Samba.
Samba fornisce un servizio di condivisione file compatibile con Windows.
Puoi condividere una directory (ad esempio /srv/samba/sharename
) sul tuo computer Linux e accedi da Windows in questo modo:\\linuxservername\sharename
. Non necessita di alcun software aggiuntivo sul lato Windows.
Samba è incluso nella maggior parte delle distribuzioni Linux. Installalo utilizzando il gestore pacchetti, ad esempio:
-
Ubuntu:
sudo apt-get install samba smbclient
-
SUSE:
zypper samba
-
CentOS/RedHat:
yum install samba
Per configurare Samba, vedi:
-
Ubuntu:http://ubuntuforums.org/showthread.php?t=202605
-
SUSE:http://doc.opensuse.org/documentation/html/openSUSE/opensuse-reference/cha.samba.html
-
CentOS/RedHat:http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-samba-configuring.html
o cerca su Google per trovare una guida per la tua distribuzione.
Tieni presente che potresti dover configurare il tuo firewall Linux, nel caso ne utilizzi uno, per accettare connessioni alle porte 137/tcp, 138/tcp, 139/tcp e 445/tcp (vedi questo e questo).
Nella descrizione sopra il computer Linux è un server Samba e Windows ne monta una condivisione.
Nel tuo commento qui sotto dici che vorresti automatizzare il processo di trasferimento . Ciò può essere ottenuto invertendo i ruoli in modo che Windows agisca come server e Linux si connetta ad esso utilizzando smbclient
.
Con smbclient
non è necessario montare la condivisione di Windows. Ad esempio, per recuperare C:\Directory\file.txt
e copialo in /tmp
sul tuo computer Linux fai questo:
smbclient '//windowsserver/c$' -c 'lcd /tmp; cd Directory; get file.txt' -U administrator%password
-c
Comando da eseguire. Vedi man smbclient
per i dettagli.
-U
Nome utente e password per accedere alla condivisione specificata come username%password
Modificalo in base alle tue esigenze e aggiungilo al tuo script.
So che hai detto che non puoi aspettarti che venga installato un software specifico, ma ci sono client SSH/SCP/SFTP per Windows che non richiedono alcuna installazione particolare; solo l'eseguibile è disponibile. Uno a cui continuo a rivolgermi è PuTTY con il suo compagno pscp
e psftp
strumenti, ma sono certo che esistono alternative. pscp
e psftp
possono essere guidati completamente dalla riga di comando e quindi sono adatti per attività di automazione. Entrambi hanno anche un -batch
interruttore che è descritto come "disabilita tutti i prompt interattivi" e quasi certamente può essere sfruttato.
Dal momento che presumibilmente hai già un server SSH/SCP/SFTP installato e configurato sul server, questo evita di dover installare qualsiasi software su entrambi gli host solo allo scopo di copiare quei file.
Un altro aspetto positivo potrebbe essere il fatto che PuTTY è open source con una licenza permissiva, quindi se non fa quello che vuoi subito, dovrebbe essere relativamente facile farlo funzionare nel modo che preferisci.