我有一堆五个Pi,每个Pi都有一个单独的主机名,并且位于同一网络上。我需要从其他Pi物理识别每个Pi,也许是通过以可识别的方式闪烁板载LED来实现的。知道我怎么能从Bash理想地做到这一点,并且无需进行任何连接吗?
我有一堆五个Pi,每个Pi都有一个单独的主机名,并且位于同一网络上。我需要从其他Pi物理识别每个Pi,也许是通过以可识别的方式闪烁板载LED来实现的。知道我怎么能从Bash理想地做到这一点,并且无需进行任何连接吗?
Answers:
至少在Pi 3上,您可以使用以下命令(以root用户身份)将绿色(SD卡活动)LED持续点亮:
echo 1 > /sys/class/leds/led0/brightness
现在,Pi的绿色LED会一直稳定点亮,这使得识别和标记非常容易。
要将LED恢复到默认状态:
echo 0 > /sys/class/leds/led0/brightness
echo mmc0 > /sys/class/leds/led0/trigger
以此方式遍历所有Pi,直到您对所有Pi进行了寻址和标记。
我建议只拉一下以太网电缆,然后依次对每个Pi进行ping操作。哪个不回复?这些其他解决方案很简洁,但是ping是常绿的。如果出于某些原因在这些Pi上过滤了icmp请求,则可以使用nmap软件包中的nping:
nping —arp 192.168.0.25
如果您着急的话,只需使用Play / App商店中的Fing(免费)进行快速arp扫描,然后查看拔出电缆时哪个主机掉线了。
并根据您的dhcpd.conf中的MAC地址分配静态IP,以避免此类问题。ISC-DHCPD正是您所需要的。这是一项美丽的服务。除非您需要dnsmasq的许多++功能,否则不要使用它。
打印带有MAC,IP和主机名的dymo标签,并将其粘贴在每个Pi的顶部。不要依靠mDNS / avahi / bonjour / auto-onthing,这不是万无一失的。此外,多年来,avahi-daemon还存在一些严重的安全问题。
/etc/hosts
仍然是小型实验室/ SoHo网络的王者,我一直将它用作dhcpd静态客户端的参考。
/etc/hosts
那些无法做到的设备(例如我的iPhone),要容易得多。