
Quero transferir um arquivo de um servidor UNIX para um Windows 2003 Server, então baixei copssh
no servidor Windows e openssh
já está instalado no servidor UNIX.
Quando executo o seguinte comando (no servidor UNIX):
scp -r /file_in_unix/ user@windows_hostname:\c:\\\
A seguinte saída aparece (na tela do servidor UNIX):
100% |***************************************************************| 562 00:00
Porém, quando vou ver o arquivo na C
unidade do servidor Windows, não encontro nada. Por que o arquivo não está aparecendo?
Responder1
O caminho de destino parece errado - para a maioria dos shells unix, a barra invertida é um caractere de escape e não um marcador de caminho, então acho que o arquivo foi colocado no diretório inicial do usuário SSH com um nome de arquivo estranho.
O IIRC copssh é baseado no cygwin, então o que você provavelmente precisava para executar é:
scp -r /file_in_unix/ user@windows_hostname:/cygdrive/c/
Uma alternativa para copiar para um serviço SSH na máquina Windows é usar um cliente GUI comoWinSCPna caixa do Windows para fazer login na máquina Unix e transferir os arquivos dessa maneira - embora isso não seja adequado se você estiver tentando automatizar o processo.
Se você tiver acesso privilegiado na máquina unix (ou seja, você é, ou pode se tornar via sudo ou similar, root) e tem o suporte relevante instalado, você pode simplesmente copiar os arquivos para um compartilhamento do Windows. Você não diz qual Unix está usando. Para Ubuntu e similares, verificando se o suporte está presente e instalando-o, se não puder ser feito com sudo aptitude install smbfs
, você pode montar um compartilhamento Windwos com algo como sudo mount -tcifs //11.22.33.44//sharename /mnt/tmp -ousername=WindowsUserName
(onde 11.22.33.44 é o endereço IP da máquina Windows, dependendo da configuração da sua rede, você pode ser capaz de se referir à máquina pelo nome em vez do endereço). Depois de fazer isso, você pode simplesmente usar as ferramentas básicas de gerenciamento de arquivos ( cp
, mv
, ...) para interagir com o compartilhamento do Windows e ligar umount /mnt/tmp
quando terminar. Talvez você queira escolher um nome de ponto de montagem mais significativo que /mnt/tmp. Você pode deixar o compartilhamento montado, claro, caso a transferência dos dados seja automatizada/agendada. Este método pressupõe que a máquina Unix pode ver os compartilhamentos de arquivos da máquina Windows através de quaisquer arranjos de firewall que possam existir entre eles.
Responder2
Você também pode fazer o contrário e extrair arquivos do lado do Windows em vez de enviar do lado do Unix. Dê uma olhada em ferramentas comoWinSCPque é uma ferramenta gráfica para transferências de arquivos SCP que permite escolher entre a aparência do Windows Explorer ou do Norton Commander, ambos intuitivos para você. Uma vez logado, você pode navegar até os arquivos de seu interesse "no jeito Windows" e arrastá-los e soltá-los onde quiser.
Responder3
UsarWinSCPferramenta. Funciona como um encanto.
Responder4
Por que não instalar o Samba na caixa Unix? Então você pode mapear unidades entre os dois sistemas. Alternativamente, eu usaria o psftp (do pacote putty) em vez da linha de comando scp, já que você não está familiarizado com ele e aparentemente não precisa fazer um script.