2014-02-21 170 views
0

我正在一個服務器上運行一個腳本,該腳本應該將源目錄中的所有文件x次複製到destinaton目錄中。當兩位導演都在服務器上時,它運行良好。服務器上運行的Bash腳本,訪問本地文件

如何從C:\ dir本地目錄複製到服務器目錄?

+1

你將不得不使用一些協議,如SFTP,SCP或類似的用戶權限。 –

+0

您是否試圖讓服務器從服務器上運行bash腳本從本地系統檢索文件? – andrew

+0

如果其中一個系統是Windows,那應該可以反映在問題的標題和標記中 –

回答

1

如果你有系統之間的SSH訪問,你可以把本地目錄到遠程位置,像這樣:

printf -v ssh_cmd 'mkdir -p %q && tar -C %q -x' \ 
    "$dest_directory" "$dest_directory" 
tar -C "$source_directory" -c . | ssh other_host "$ssh_cmd" 

...或拉遠程目錄到本地一個類似:

printf -v ssh_cmd 'tar -C %q -c .' \ 
    "$source_directory" "$source_directory" 
mkdir -p "$dest_directory" 
ssh other_host "$ssh_cmd" | tar -C "$dest_directory" -x 
+0

如果其中一個系統是Windows,這將適用於cygwin。 (可能需要啓動Cygwin sshd作爲服務,但這是可用的)。 –

0

首先,您需要共享您的本地「C:\ dir」併爲其指定網絡名稱,例如「networkdir」。

然後,然後你複製文件掛載它像
mount -t cifs -o username=user,password=pw //hostname/networkdir /mnt/localdir/

/mnt/localdir/像你這樣做是爲了本地目錄。

對於secirity原因,你也可以只進行此操作創建用戶在Windows中,並給寫入該份額

+0

問題是這個腳本應該是我公司裏任何人都可以使用的。我想每個人都必須分享本地目錄呢? – Tobey

+0

好吧,我的解決方案需要共享目錄。你有試過另一個嗎? – Alexander

相關問題