15
精确地以非常短的时间间隔运行unix命令,而不会随着时间的推移而累积时间滞后
题 我希望能够在很长一段时间内每秒精确地运行UNIX命令。 我需要一个解决方案,该解决方案在一定时间后不会落后,因为命令本身需要执行时间。在这方面,sleep,watch和某些python脚本都使我失败了。 在诸如http://Arduino.cc之类的微控制器上,我将通过硬件时钟中断来实现。我想知道是否存在类似的时间精确的shell脚本解决方案。我在StackExchange.com中找到的所有解决方案,如果运行数小时,将导致明显的时间延迟。请参阅下面的详细信息。 实际用途/应用 我想通过nc每1秒通过(netcat)发送时间戳来测试我的网络连接是否连续不断。 发件人: precise-timestamp-generator | tee netcat-sender.txt | nc $receiver $port 接收方: nc -l -p $port > netcat-receiver.txt 完成后,比较两个日志: diff netcat-sender.txt netcat-receiver.txt 差异将是未传输的时间戳。由此,我会知道我的LAN / WAN / ISP在什么时候出现问题。 解决方案休眠 while [ true ]; do date "+%Y-%m-%d %H:%M:%S" ; sleep 1; done | tee timelog-sleep.txt 随着时间的推移获得一定的偏移量,因为循环内的命令也需要一些时间。 精确 cat …