2012-08-22 42 views
1

我想知道rsync如何在非守護進程模式下工作,以及它究竟是什麼?非守護進程中的rsync

從rsync手冊頁,我開始瞭解守護進程模式是如何工作的。 我知道守護進程模式。守護進程是一個不斷偵聽後臺連接的進程。

現在,場景是,我不想使用守護進程模式,因爲它需要一些專用端口始終處於偵聽狀態。

我想知道,非守護模式下的客戶端(比如說本地機器)在技術上如何調用服務器(比如遠程機器)上的rsync偵聽器,反之亦然? 這種方法的原因是,* 我不希望客戶端應該知道服務器端口號*。 任何細節的解釋將不勝感激。

+0

你看過'rsync'的源代碼嗎?也許它默認調用'daemon(3)',或者避免這個調用!你也可以使用'strace'來查明。 –

+0

沒有守護進程rsync只使用SSH/RSH。 – scai

+0

嘿,巴西爾謝謝你。 我使用strace命令僅限於跟蹤系統調用和信號。但是,我的查詢詢問,如何在非守護模式下確定遠程系統的端口號? 是的,我研究了rsync的代碼,這太複雜了,以至於找不到守護進程(3)被調用的地方。 所以,請解釋我如何使用strace來獲得我原來的查詢的解決方案? –

回答

1

從rsync手冊頁:

有rsync的兩種不同的方式來聯繫遠程 系統:使用遠程外殼程序作爲傳輸(如ssh或rsh)或 接觸 一個rsync守護進程直接通過TCP。

所以在非deamon模式下,您可以使用ssh連接並更新您的客戶端。在這種情況下,通過ssh的初始連接將設置客戶端,以便rsync可以在不知道端口號的情況下進行連接。

+0

嘿perreal,我想詳細瞭解ssh將如何設置客戶端詳細信息。正如其中,正是它執行相同的過程? –

0

其呼叫過的rsync在這種情況下,SSH,你並不需要運行守護

+0

好。但是,我問過ssh如何知道遠端的端口號?技術細節請。 –

+0

rsync -avz -e ssh remoteuser @ remotehost:/ remote/dir/this/dir/ – Satish

+0

我發現它是如何在非守護模式下調用遠程rsync的。 –

1

這回答我的問題:

我發現了它是如何調用的非守護模式遠程rsync的。 上本地側:如果命令是: - rsync的-avz -e SSH remoteuser表@遠程主機:/遠程/目錄/這個/目錄/ 此命令將上的本地側開始另一個處理: - SSH -l remoteuser 192.168.xx.xxx -vlogDtprze.iLsf。 /遠程/ DIR

此ssh命令調用遠程rsync的遠程盒爲: rsync的--server -vlogDtprze.iLsf。/remote/dir/

並以任意端口號開始。但通過ssh進行數據通信(端口22需要打開)。