2009-02-20 62 views

回答

3

我一直使用安全副本手動進行手動(SCP)。 SCP已經安裝在大多數Unix機器上。在我的電腦上,我安裝了PuTTY這是一個安全的Windows終端應用程序,並且還包含一個安全的複製實用程序。

當您從Windows命令行手動執行安全複製時,將您的Unix用戶名放入命令行命令中,但必須在提示符下輸入密碼,以便交互。但我也想過從腳本或批處理文件中完成它。在這種情況下,您需要在適當的機器上使用create and install private and public keys。我創建了相應的密鑰並將它們安裝在Windows和Unix機器上,然後我再次手動執行了Windows命令行安全複製,並且它確實而不是那時候要求我輸入密碼。所以這是你完成任務的一種方式。不過,我相信還有很多其他的方法。

+0

我需要膩子嗎? – CheeseConQueso 2009-02-20 15:47:55

+1

是的。儘管Windows中可能有其他產品提供SCP實用程序。雖然PuTTY非常流行。並免費。 – 2009-02-23 22:05:45

2

是的,只要腳本執行的操作系統可以從Unix驅動器讀取並寫入Windows驅動器。由於這是vbscript的標籤,我假設你在Windows上運行,所以你可能想看看this這樣的東西來訪問Windows的Unix文件系統(儘管這是Linux的ext驅動程序)。然後它只是運行一個標準的複製功能來完成你的任務。

2

既然你有一個Samba標籤,你說的是把Unix機器上的網絡共享掛載到你的Windows機器上嗎?

如果是這樣,它就像一個正常的網絡驅動器,你可以通過共享複製任何你有權限的東西。

1

我會使用expect工具。

下面是一個例子,如何上傳

  • /local/path/to/file

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

使用passwo與domain\user認證rd 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 
相關問題