2016-01-21 33 views
0

我有sh腳本,它將某些文件夾中的所有文件複製到某個主機。Bash&CYGWIN:SCP沒有看到文件

scp -r -i PATH_TO_SSH_KEY SOURCE_FOLDER/* SERVER:TARGET_DIR 

當我運行該腳本,我得到以下結果:

Cygwin的列出了我SOURCE_FOLDER的所有文件,並說沒有找到這些文件! 「無此文件或目錄」。這看起來很奇怪。我已檢查該文件夾中的所有文件都具有-rw-r - r--權限。我試圖設置更高的權限,但我無法保留它們,因爲每次運行此腳本時都會重新生成文件,所以它們總是這樣。

的問題是:

1)權限應該由SCP來傳輸文件?

2)我可以設置一個文件夾的方式,其中的所有文件總是創建一些預定義的權限? 3)如果我對權限的猜測降下來 - 還有什麼可以成爲這種行爲的原因?

+0

適合我。嘗試使用'set -xv'運行腳本來查看發生了什麼。 – choroba

回答

0

似乎爲我工作,但我在Linux上工作。不是100%熟悉cygwin。回答您的權限問題:

1)文件應該是可寫的。如果他們屬於root,那麼更改組或使用sudo。我會解釋下一步如何處理它。

2)是的,你會想使用umask來實現這一點。我不會做遠程root用戶複製或777權限。您想爲該目錄分配一個umask併爲其分配特定的組。 002 umask意味着該目錄中組的所有人都具有讀寫權限。接下來的兩個命令然後將一個組添加到該目錄以及文件的默認組。以下是語法示例:

umask 002 <dir> 
chgrp <group> <dir> 
chmod g+s <dir>  

3)語法...但我猜測權限。檢查目標服務器和源服務器的權限。

我希望這有幫助!

的umask參考: http://man7.org/linux/man-pages/man2/umask.2.html

喝彩!