0

ファイルを Unix ドライブから Windows ドライブにコピーするスクリプトを作成する方法はありますか?

4

4 に答える 4

3

セキュア コピー ( SCP )を使用して、常に手動で行っています。SCP は、ほとんどの Unix マシンに既にインストールされています。私の PC には、Windows 用のセキュア ターミナル アプリであり、セキュア コピー ユーティリティも含まれて いるPuTTYをインストールしました。

Windows コマンド ラインから手動でセキュア コピーを実行する場合、Unix ユーザー名をコマンド ライン コマンドに入力しますが、プロンプトでパスワードを入力する必要があるため、対話型です。しかし、スクリプトまたはバッチ ファイルから実行することも考えました。その場合、適切なマシンに秘密鍵と公開鍵を作成してインストールする必要があります。適切なキーを作成し、Windows と Unix の両方のマシンにインストールした後、Windows コマンド ラインのセキュア コピーを手動で再度実行しましたが、そのときはパスワードを要求されませんでしたしたがって、これはタスクを達成するための 1 つの方法です。他にもたくさんの方法があると思いますが。

于 2009-02-20T14:52:12.127 に答える
2

あなたは Samba タグを持っているので、ネットワーク共有を Unix マシンから Windows マシンにマウントすることについて話しているのですか?

その場合、それは通常のネットワーク ドライブのように扱われ、共有を介してアクセス許可があれば何でもコピーできます。

于 2009-02-20T14:57:41.227 に答える
2

はい、スクリプトが実行されているオペレーティング システムが Unix ドライブから読み取り、Windows ドライブに書き込むことができる限り。これは vbscript とタグ付けされているので、Windows で実行していると仮定します。Windows用の Unix ファイルシステムにアクセスするには、このようなものを調べる必要があります (ただし、これは Linux ext ドライバーです)。次に、標準のコピー機能を実行してタスクを完了します。

于 2009-02-20T14:50:23.537 に答える
1

私はexpectツールを使用します。

アップロード方法の例を次に示します。

  • /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
于 2013-10-08T13:07:36.150 に答える