Pergunta

Existe alguma maneira de fazer um script que copie os arquivos de uma unidade Unix para uma unidade do Windows?

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top