2016-01-21 79 views
0

我試圖通過命令產品rsync同時獲取錯誤以下錯誤。使用rsync無法將文件從服務器A同步到服務器B.服務器B有運行的rsync守護程序

命令是

rsync -arv -K -O --no-perms --delete --exclude=.svn --exclude=.snapshot sourcepath [email protected]:/tasks 

下降文件不受SVN用戶所擁有的,但他們是通過SVN用戶的主組可寫的。

如果我嘗試登錄到serverB作爲svn用戶即時可以編輯這些文件。只有rsync失敗。

我們無法更改文件的所有權,因爲webapp需要使用不同的帳戶。

以下是錯誤消息。

rsync: mkstemp "/tasks/com/media/.QuerySM.task.Yz4zVg" failed: Permission denied (13) 
rsync: mkstemp "/tasks/com/media/.QuerySP.task.eqoVbP" failed: Permission denied (13) 
rsync: mkstemp "/tasks/com/media/.QueryST.task.8c1Gsn" failed: Permission denied (13) 
rsync: mkstemp "/tasks/com/media/.QueryMW.task.Q18EFI" failed: Permission denied (13) 
rsync: mkstemp "/tasks/com/parts/.EFParts.task.0sJVJV" failed: Permission denied (13) 
rsync: mkstemp "/tasks/com/parts/.FFModel.task.y6UF1t" failed: Permission denied (13) 

的rsync版本

rsync version 3.0.6 protocol version 30 

目錄權限爲775

有趣的事情,我發現現在是它拋出這個錯誤,但它實際上會複製文件,下面的錯誤結束。

 sync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6] 
+0

可能重複的[rsync - mkstemp失敗:權限被拒絕(13)](http://stackoverflow.com/questions/11039559/rsync-mkstemp-failed-permission-denied-13) – Maquefel

+0

@Maquefel,解決方案didn' t幫助我:-(。我不能讓svn用戶作爲所有者作爲webapp將失敗 – maestromani

+0

什麼是你的rsync版本?你的目錄組的權限是什麼?你可以創建新的文件作爲svn嗎? – Maquefel

回答

0

如果您的'svn'用戶沒有對它負責的目錄部分的寫入權限,請先修復這些權限問題。我猜想,這個問題是缺乏寫入權限來/tasks/com/tasks/parts,所以在ServerB:

chown svn /tasks/com/{media,parts} 

接下來,如果你是舒適與此(嚴重)的安全問題,你也許能繞過權限問題通過運行rsync的作爲根:

rsync [other options] --rsync-path="sudo rsync" sourcepath [email protected]:/path/ 

--rsync-path選項告訴rsync將作爲遠程服務器(源或目標)的rsync根運行。要使用它,您需要在serverB上設置sudo,以便在嘗試運行rsync時,您的用戶不會受到密碼挑戰。要知道這是一種風險。 Rsync可以做很多事情,像這樣授予權限幾乎可以授予任何可以在服務器上獲得shell的用戶的root權限。

+0

謝謝,但該服務器上的sudo訪問權限是:-(-) – maestromani

相關問題