Como posso copiar arquivos de cópia do Unix para o Windows?
Pergunta
Existe alguma maneira de fazer um script que copie os arquivos de uma unidade Unix para uma unidade do Windows?
Solução
Eu faço isso manualmente o tempo todo usando cópia segura (SCP). O SCP já vem instalado na maioria das máquinas Unix. No meu PC, eu instalei Putty que é um aplicativo de terminal seguro para Windows e também contém um utilitário de cópia seguro.
Quando você faz a cópia segura manualmente a partir da linha de comando do Windows, você coloca seu nome de usuário do Unix no comando da linha de comando, mas precisa digitar sua senha no prompt, para que seja interativa. Mas também pensei em fazê -lo em um script ou um arquivo em lote. Nesse caso, você precisará Crie e instale chaves privadas e públicas nas máquinas apropriadas. Criei as teclas apropriadas e as instalei nas máquinas Windows e Unix e depois executei manualmente a linha de comando do Windows Cópia não Peça -me minha senha naquele tempo. Portanto, essa é uma maneira de realizar sua tarefa. Tenho certeza de que existem muitas outras maneiras, no entanto.
Outras dicas
Sim, desde que o sistema operacional em que o script esteja executando pode ler na unidade Unix e gravar na unidade do Windows. Como isso é marcado VBScript, assumirei que você está executando no Windows para que você queira olhar para algo como isto Para obter acesso ao Unix FileSystems para Windows (embora esse seja um driver Linux EXT). Em seguida, está apenas executando uma função de cópia padrão para concluir sua tarefa.
Como você tem uma tag samba, você está falando sobre a montagem de um compartilhamento de rede de uma máquina Unix na sua máquina Windows?
Nesse caso, ele é tratado apenas como uma unidade de rede normal e você poderá copiar qualquer coisa que tivesse permissões por meio do compartilhamento.
eu usaria Espero ferramenta.
Aqui está um exemplo, como fazer upload
/local/path/to/file
para
\\HOST\SHARE\remote\path\to\file
autenticação com domain\user
usando senha password
:
expect <<<EOF
set timeout 10
spawn smbclient //HOST/SHARE "-Udomain\\user%password"
expect {
"smb: \\\\\\\\>" {
send "cd /remote/path/to\r"
expect {
"NT_STATUS_OBJECT_NAME_NOT_FOUND" {exit 1}
"smb: *>" {
set timeout -1
send "put /local/path/to/file file\r"
expect {
"putting file " {
expect "smb: *>" {exit 0}
}
"smb: *>" {exit 1}
}
}
}
}
}
# Timeout
exit 1
EOF