2014-02-10 53 views
0

我正在努力將pseudo-filesystem發送到其他機器。是否有可能建立一個用於向其他機器發送僞文件系統的代碼?

在這種情況下,我使用/proc/cpuinfo/proc/meminfo作爲僞文件系統示例。

我有兩臺電腦可以互相溝通ssh

現在,我正在嘗試構建一個* .sh代碼以保護從其他計算機復​​制某個系統文件。代碼是:

#INPUT 
export [email protected] 
export [email protected] 


#Obtaining CPU and Memory Data 
scp $MASTER:/proc/cpuinfo /master/. 
scp $MASTER:/proc/meminfo /master/. 
scp $HELPER:/proc/cpuinfo /helper/. 
scp $HELPER:/proc/meminfo /helper/. 

這個想法是,我可以在任何計算機(無論是主計算機還是助手計算機)上運行此腳本。

但是,後來複製的文件是空白的,裏面沒有任何信息。 我嘗試sudo chmodsudo chown/proc/文件夾但系統表示權限被拒絕。僅供參考,我不會激活root用戶,並且始終只使用sudo

任何人都可以指導我解決一些問題嗎?

附加信息和即興創作: 完整的代碼在jsfiddle。 我只是試圖通過jsfiddle使用協作選項,雖然此代碼不是JavaScript。 http://jsfiddle.net/santosasandy/sWYLL/#&togetherjs=hCO3VuPwO4

+1

做一個測試,看看是否有簡單的東西(不使用SSH)的作品。像'cp/proc/cpuinfo/tmp/master'。如果這不起作用,那麼scp版本將無法工作。祝你好運。 – shellter

+0

嗨@shellter謝謝。確實'ssh'正常工作。我可以爲其他文件做'scp'而不需要輸入密碼。我想知道爲什麼我不能複製'/ proc/cpuinfo'和'/ proc/meminfo' –

+0

@shellter對不起,無法閱讀您的評論。我做你的建議。我可以將它複製到'tmp'文件夾。複製的文件具有信息(非空白)。但是我不能將它傳輸到其他計算機(Master to Helper或反之亦然) –

回答

2

似乎scp首先使用stat以確定該文件的大小被轉移,然後轉移到該字節數。由於/proc是僞文件系統,並且/proc/cpuinfo是pseduo文件,因此stat將其大小報告爲零字節。因此,scp什麼都不傳輸。

相比之下,cp似乎只是從文件中讀取塊,直到它不能再讀取爲止,因此stat報告的零大小是無關緊要的。

要將文件複製到另一個系統,您似乎必須首先使用cp來製作本地副本,然後使用scp通過網絡進行傳輸。

+0

感謝您的建議,Eric。 @shellter也提出了相同的方法。但是,你有沒有關於如何從另一臺機器執行cp的想法?假設我在Master上,並且我希望代碼在Helper的'prop/cpuinfo'中的helper機器上執行'cp'。 –

+1

關於'stat'的高度可能的理論。感謝分享。祝你們好運。 – shellter

+0

@shellter好的線索,謝謝。 –

1

您可以使用cat來讀取僞文件,而不是試圖複製它們。例如:

ssh $MASTER 'cat /proc/cpuinfo' > /master/cpuinfo 
+0

燦爛的想法。謝謝@chepner,我會盡力讓你知道結果。 –

相關問題