【发布时间】:2013-02-04 04:19:55
【问题描述】:
我已经看到了许多解决我一半问题的方法 - 每 5 秒运行一次脚本。
除此之外,我还希望它只运行 2 分钟。
脚本的重点是在一段时间内对某个位置的RSSI进行采样:
#!/bin/bash
RSSI_CSV=$1
DISTANCE=$2
RSSI=$(iwconfig wlan0 | awk -F'[ =]+' '/Signal level/ {print $7}\')
printf "$DISTANCE,$RSSI\n" >> $RSSI_CSV
在命令行调用它:
sh rssi_script.sh output.csv position
解决我的问题的最可靠的解决方案是什么?
我考虑过的可能性:
- 在自身内部重复脚本 40 次(测量 RSSI 40 次并将其输出到 CSV 40 次,整个实验的位置将相同)这也将解决将运行限制为 2 分钟的问题。我可能会添加一些新的命令行参数,如果我每次都必须更改 40 个变体,这些参数可能很难跟踪
- 使用 watch 每 5 秒采样一次,使用 cron 将其限制为 2 分钟(不是 100% cron 可以做到这一点)
- while 循环 2 分钟(不知道如何执行这样的 while 循环?),每个循环结束时休眠 5 秒
- 使用 cron 启动 shell 脚本作为脚本的 40 个进程并将每次迭代延迟 5 秒,我不确定命令行参数将如何传递,正如我上面所说,我可能会添加一些新的命令行参数所以这可能会导致问题(额外的工作)
如果有任何我遗漏或可以提供帮助的信息,请告诉我,感谢任何人提供的任何帮助。
【问题讨论】:
标签: shell cron scheduled-tasks