【问题标题】:What would be the most efficient way to log a raspberry pi's data over ssh?通过 ssh 记录树莓派数据的最有效方法是什么?
【发布时间】:2018-06-12 07:38:32
【问题描述】:
我目前在树莓派上有一个 python 脚本,它在运行时在同一目录中创建一个日志文件,其中包含我想在笔记本电脑上实时查看的重要数据(我可以通过 ssh 进入 pi) .
显然我可以在使用文本编辑器 ssh 时在笔记本电脑上查看日志文件,但这不是实时数据流。
不幸的是,虽然我有相当多的 python 经验,但我对网络的东西知之甚少,除了我可以将文件 scp/rsync 到我的计算机上,但当然,这并不能让我实时查看我的日志文件。
【问题讨论】:
标签:
logging
ssh
raspberry-pi
file-transfer
【解决方案1】:
脑海中浮现出两个想法……
Unix syslog 工具允许分布式/远程日志记录。您可能会找到一个 Python 模块,或者您可以创建一个套接字并将消息发送到笔记本电脑上的syslogd。您甚至可以在紧要关头使用netcat 发送消息。 Related article
您可以在笔记本电脑上设置 Redis,并使用 Python Redis 模块将带时间标签的消息发送到队列或排序哈希,然后编写一个小脚本在笔记本电脑上的队列中等待。还可以为消息指定“生存时间” 或到期时间,这样内存需求就不会太高。 Related article
更简单的选择可能是将日志写入 Raspberry Pi 上的文件,然后根据笔记本电脑的操作系统,通过 NFS 或 Samba 与笔记本电脑共享该目录。然后您可以使用tail 的follow (-f) 选项来查看最后几行的持续更新:
tail -f output.log
【解决方案2】:
tail 常用于此,tail -f yourlogfile.log 将显示文件的最新十行并在文件更改时更新。
【解决方案3】:
网猫。
在本地电脑上
nc -l 2000
远程
tail -f filename | nc hostip 2000