copia o arquivo do windows para o Linux

13

Eu estou escrevendo um script. ele irá rodar uma máquina linux. seus alvos incluem linux, solaris e windows.

Eu sei que posso usar o scp para copiar arquivos entre * nix. mas que tal copiar o arquivo do windows?

Essas janelas são máquinas de teste, que não podem ter software específico instalado, já que o sistema operacional pode ser reinstalado com freqüência.

    
por Alex 08.03.2013 / 07:38

3 respostas

18

Use o Samba .

O Samba fornece um serviço de compartilhamento de arquivos compatível com o Windows.

Você pode compartilhar um diretório (por exemplo /srv/samba/sharename ) no seu computador Linux e acessá-lo no Windows da seguinte forma: \linuxservername\sharename . Não precisa de nenhum software extra no lado do Windows.

O Samba está incluído na maioria das distribuições Linux. Instale-o usando o gerenciador de pacotes, por exemplo:

  • Ubuntu: sudo apt-get install samba smbclient

  • SUSE: zypper samba

  • CentOS / RedHat: yum install samba

Para configurar o Samba, consulte:

ou pesquise no Google para encontrar um guia para sua distribuição.

Note que você pode precisar configurar seu firewall Linux, caso você use um, para aceitar conexões com as portas 137 / tcp, 138 / tcp, 139 / tcp e 445 / tcp (veja isso e isto ).

Na descrição acima, o computador Linux é um servidor Samba e o Windows monta um compartilhamento a partir dele.

Em seu comentário abaixo, você mencionou que gostaria de automatizar o processo de transferência . Isso pode ser obtido invertendo as funções para que o Windows funcione como o servidor e o Linux se conecte a ele usando smbclient .

Com smbclient você não precisa montar o compartilhamento do Windows. Por exemplo, para recuperar C:\Directory\file.txt e copiá-lo para /tmp em seu computador Linux, faça o seguinte:

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

-c Comando para executar. Consulte man smbclient para obter detalhes.

-U Nome de usuário e senha para acessar o compartilhamento especificado como username%password

Modifique-o para suas necessidades e adicione-o ao seu script.

    
por 08.03.2013 / 09:08
2

Eu sei que você disse que não pode esperar que um software específico seja instalado, mas existem clientes SSH / SCP / SFTP para Windows que não requerem instalação específica; apenas o executável disponível. Uma que eu continuo procurando é PuTTY com suas ferramentas pscp e psftp , mas tenho certeza de que existem alternativas. pscp e psftp podem ser conduzidos completamente a partir da linha de comando e, portanto, são adequados para tarefas de automação. Ambos têm até uma opção -batch , que é descrita como "desabilitar todos os prompts interativos" e quase certamente pode ser aproveitada.

Como você presumivelmente já tem um servidor SSH / SCP / SFTP instalado e configurado no servidor, isso evita ter que instalar qualquer software em qualquer host apenas para copiar esses arquivos.

Outro ponto positivo pode ser o fato de que o PuTTY é open source sob uma licença permissiva, então se ele não fizer o que você quer imediatamente, deve ser relativamente fácil fazê-lo agir da maneira que preferir. / p>     

por 11.03.2013 / 11:47
1

Eu sou um usuário CentOS 6 , então tentei esse método em CentOS 6

Instale o samba usando

[root@server ~]# yum install samba

Consulta para confirmar

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

Crie um usuário do Samba.

[root@server ~]# useradd sambashare

Agora crie uma senha samba para o nome de usuário sambashare usando o comando smbpasswd.

[root@server ~]# smbpasswd -a sambashare
New SMB password:
Retype new SMB password:
Added user sambashare.

Crie um diretório de compartilhamento de samba

[root@server ~]# mkdir /share

altere a propriedade da pasta de compartilhamento

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

Abra o arquivo /etc/samba/smb.conf e adicione as linhas abaixo.

[share]
comment = Share
path = /share
writable = yes
valid users = sambashare

Iniciar o serviço do samba

[root@server ~]# service smb restart
Shutting down SMB services:                                [  OK  ]
Starting SMB services:                                     [  OK  ]

Verifique sua configuração usando o comando testparm

.
.
[share]
comment = share
path = /share
valid users = sambashare
read only = No

No sistema windows, digite isso em run

Agoradigiteonomedeusuárioesenhadosamba

Você terminou

    
por 08.03.2013 / 09:58