我有一个小型数据收集器,一个 Raspberry Pi Zero W,它在启动时使用 sshfs 在 mnt 上安装一个远程文件夹。数据传输是使用cp命令来实现的,例如,cp device file &
设备在本地并且文件在远程文件夹中。这是一个无限循环。如果 Pi 的电源出现故障,该过程将在电源恢复后重新启动。但是如果复制过程中服务器出现故障怎么办?我想然后循环重新启动,直到复制恢复。但是我如何从 pi 得知服务器何时停止运行?
答案1
这有很多问题:
- cp 旨在复制文件,而不是流。每次 pi 重新启动时,它都会重新启动副本,将以前的所有数据清零。如果这不是您想要的,那么您可能会更好地使用类似
cat device >> file
或也许dd
- sshfs 不是很健壮。当服务器重新启动时,sshfs 连接将终止,并且在没有主动重新启动它的情况下不会恢复,并且 cp 将终止。 NFS 旨在处理这种情况,并且会暂停,直到服务器备份,然后恢复,就像什么都没发生一样。即使仅使用 ssh 本身也可能比 sshfs 更好。
- 根据您正在执行的操作,您可能最好在服务器上设置某种服务来收集数据,而不是使用文件系统语义。两端的 Netcat 可能会更好,但即便如此,也没有达到应有的稳健程度。
如果没有更多详细信息说明您这样做的原因以及您的目标是什么,就很难提供更好的建议。