0

我正在努力发送pseudo-filesystem到其他机器。

在这种情况下,我使用/proc/cpuinfoand/proc/meminfo作为伪文件系统示例。

我有两台可以相互通信的计算机ssh

现在,我正在尝试构建一个*.sh代码来安全地从其他计算机复​​制一些系统文件。代码是:

#INPUT
export MASTER=user@11.1.111.11
export HELPER=user@12.1.122.12


#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 chmod和文件夹sudo chown/proc/但系统说权限被拒绝。仅供参考,我不激活root用户,只是sudo一直在使用。

有人可以指导我一些解决方案吗?

附加信息和即兴创作:完整代码位于jsfiddle. jsfiddle尽管此代码不是 JavaScript ,但我只是尝试使用协作选项。http://jsfiddle.net/santosasandy/sWYLL/#&togetherjs=hCO3VuPwO4

4

2 回答 2

2

似乎scp首先用于stat确定正在传输的文件的大小,然后传输到该字节数。因为/proc是一个伪文件系统,并且/proc/cpuinfo是一个伪文件,所以stat它的大小报告为零字节。因此,scp什么也不转移。

相反,cp似乎只是从文件中读取块,直到它不能再读取,所以报告的零大小stat是无关紧要的。

要将文件复制到另一个系统,您似乎必须首先使用cp制作本地副本,然后使用scp通过网络传输。

于 2014-02-10T18:02:38.110 回答
1

您可以使用cat从伪文件中读取,而不是尝试复制它们。例如:

ssh $MASTER 'cat /proc/cpuinfo' > /master/cpuinfo
于 2014-02-12T22:22:09.967 回答