我想测量一台装有 Windows XP 的笔记本电脑可以用电池运行多少。我有另一台装有 Xubuntu 的计算机,我可以用它来测量 Windows XP 计算机是否打开。但是我如何连接这两台计算机以及如何测量 Xubuntu 是否可以从 Windows XP 计算机读取数据?还是 XP 应该向 Xubuntu 发送一些数据?
我想测量一台装有 Windows XP 的笔记本电脑可以用电池运行多少。我有另一台装有 Xubuntu 的计算机,我可以用它来测量 Windows XP 计算机是否打开。但是我如何连接这两台计算机以及如何测量 Xubuntu 是否可以从 Windows XP 计算机读取数据?还是 XP 应该向 Xubuntu 发送一些数据?
我认为最简单的解决方案是使用 ICMP 回显请求 (ping)。为此,您必须设置 XP 框以响应 ICMP 消息,如此处所述。
现在,确保 Linux 和 XP 机器在同一个网络中,并且都有一个 IP 地址。您可以在 Linux 上使用
在 Windows 上
以下脚本需要 XP IP 地址:
将此脚本保存在某个文件中,例如
pingtimer.sh
并使其可执行chmod +x pingtimer.sh
你现在可以开始了
从同一目录中。
让我们分解一下:
time ()
测量内部命令()
执行的时间。while [true]; do ...; done
无限重复内部命令 (...
) 或直到中断或中断。ping -c 1 "$1" > /dev/null
向存储在中的 IP 地址发送一个 ping 请求$1
,这是第一个程序参数,即目标 IP。由于ping
产生了很多输出,我们将把它丢弃到/dev/null
... || break
||
如果运算符之前的命令返回非零值,将打破“无限”while 循环。在 ping 的情况下,如果至少一个 ICMP 数据包未得到响应,就会发生这种情况。如果发生这种情况,例如因为目标机器宕机,程序将退出,打印 的输出time
。sleep 60
将使进程休眠 60 秒,然后发送另一个 ICMP Echo 请求。根据口味调整此值。请注意,如果您开始用 ping 淹没某些防火墙,它们将停止响应。