我正努力将pseudo-filesystem
发送到其他计算机。
在这种情况下,我使用/proc/cpuinfo
和/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/.
我的想法是我可以在任何计算机(Master或Helper计算机)中运行此脚本。
但是,以后复制的文件是空白的,里面没有任何信息。
我尝试sudo chmod
和sudo chown
/proc/
文件夹,但系统表示权限被拒绝。仅供参考,我不会激活root
用户并且始终只使用sudo
。
有人可以指导我一些解决方案吗?
其他信息和即兴创作:
完整代码位于jsfiddle
。
我只是尝试使用jsfiddle
的协作选项,尽管此代码不是JavaScript。
http://jsfiddle.net/santosasandy/sWYLL/#&togetherjs=hCO3VuPwO4
答案 0 :(得分:2)
scp
似乎首先使用stat
来确定要传输的文件的大小,然后传输到该字节数。由于/proc
是伪文件系统,而/proc/cpuinfo
是pseduo文件,因此stat
将其大小报告为零字节。因此,scp
不会转移任何内容。
相比之下,cp
似乎只是从文件中读取块,直到它不能再读取为止,因此stat
报告的零大小无关紧要。
要将文件复制到另一个系统,您似乎必须先使用cp
制作本地副本,然后使用scp
通过网络进行传输。
答案 1 :(得分:1)
您可以使用cat
从伪文件中读取,而不是尝试复制它们。例如:
ssh $MASTER 'cat /proc/cpuinfo' > /master/cpuinfo