Как я могу сценарий копирования файлов из Unix в Windows? - PullRequest
0 голосов
/ 20 февраля 2009

Есть ли способ сделать скрипт, который копирует файлы с диска Unix на диск Windows?

Ответы [ 4 ]

3 голосов
/ 20 февраля 2009

Я делаю это все время вручную, используя безопасное копирование ( SCP ). SCP уже установлен на большинстве машин Unix. На моем компьютере я установил PuTTY , который является приложением для защищенного терминала для Windows, а также содержит утилиту безопасного копирования.

Когда вы делаете защищенную копию вручную из командной строки Windows, вы вводите свое имя пользователя Unix в команду командной строки, но затем вам нужно ввести пароль в командной строке, чтобы он стал интерактивным. Но я также думал о том, чтобы сделать это из скрипта или командного файла. В этом случае вам потребуется создать и установить закрытые и открытые ключи на соответствующих компьютерах. Я создал соответствующие ключи и установил их на компьютерах с Windows и Unix, а затем снова вручную выполнил безопасное копирование командной строки Windows, и он не запросил у меня пароль в тот раз. Так что это один из способов, которым вы можете выполнить свою задачу. Я уверен, что есть много других способов.

2 голосов
/ 20 февраля 2009

Поскольку у вас есть тег Samba, вы говорите о монтировании общего сетевого ресурса с компьютера с Unix на компьютер с Windows?

Если это так, то он рассматривается как обычный сетевой диск, и вы сможете копировать все, что у вас есть разрешения, через общий ресурс.

2 голосов
/ 20 февраля 2009

Да, если операционная система, в которой выполняется скрипт, может читать с диска Unix и записывать на диск Windows. Поскольку это тег vbscript, я предполагаю, что вы работаете в Windows, поэтому вам может понадобиться что-то вроде this , чтобы получить доступ к файловым системам Unix для Windows (хотя это драйвер Linux ext). Затем он просто запускает стандартную функцию копирования, чтобы выполнить вашу задачу.

1 голос
/ 08 октября 2013

Я бы использовал ожидаю инструмента.

Вот пример, как загрузить

  • /local/path/to/file

до

  • \\HOST\SHARE\remote\path\to\file

аутентификация с помощью domain\user с использованием пароля 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...