2012-02-11 33 views
26

例子:如何強制rsync的創建目標文件夾

rsync /tmp/fol1/fol2/fol3/foln [email protected]:/tmp/fol1/fol2/fol3/foln 

我的主要問題是文件夾中的/ tmp/fol1遠程機器上不存在。

我可以使用哪些參數來強制rsync創建此樹?

+0

同樣的問題在這裏:[rsync:如何配置它在服務器上創建目標目錄?](http://stackoverflow.com/questions/1636889/rsync-how-can-i-configure-it-to- create-target-directory-on-server) – mivk 2016-10-21 11:31:12

回答

1

你可以通過bash打開一個ssh隧道來創建你需要的文件結構然後rsync數據。這些臨時文件夾會在每次完成此同步時更改嗎?例如是一週中的每一天?

ssh [email protected] 
mkdir -p tmp/fol1 
rsync avz /tmp/fol1/fol2/fol3/foln [email protected]:/tmp/fol1/fol2/fol3/foln 
fi 
14

一個竅門做是使用--rsync-path參數有以下值:

--rsync-path="mkdir -p /tmp/fol1 && rsync" 

有了可以指定將被用於啓動的rsync在什麼程序--rsync路徑遠程機器,並在shell的幫助下運行。

22

今天我遇到同樣的問題,發現解決方案here

你可以這樣做:

rsync -avR foo/bar/baz.c remote:/tmp/ 

或:

rsync -avR somedir/./foo/bar/baz.c remote:/tmp/ 

在遠程機器上創建/tmp/foo/bar/baz.c。

參見--relative/-R部分man rsync瞭解更多詳情。

+1

這是一個非常不錯的解決方案。但它不適用於rsync的Cygwin端口:( – greydet 2014-02-13 15:38:32

相關問題