我正在制作一个bash脚本,每次运行大约30分钟。就那部分而言,我已经让它稳定运行。我一直在寻找一种方法,让它在运行时每隔3分钟激活一些命令。我没有运气,所以我转向那些可能比我更了解bash的人。
有什么建议吗?
以下是我的想法。
START=$(date +%s);
while read LINE <&3; do
END=$(date +%s);
if [[ $(($END-$START)) > 180 || $(($END-$START)) == 180 ]]
then
$START=$(date +%s);
run command
fi
done
答案 0 :(得分:2)
添加一个cron作业,使其每3分钟运行一次。
*/3 * * * * /path/to/script
答案 1 :(得分:1)
_factoryList
命令怎么样? (https://unix.stackexchange.com/questions/10646/repeat-a-unix-command-every-x-seconds-forever)
(这里的第二个答案:Run command every second)
答案 2 :(得分:1)
您可以在后台运行循环:
{ while /bin/true; do some_command; sleep 180; done; } &
loop_pid=$!
然后在主脚本退出之前,终止后台循环:
kill $loop_pid
答案 3 :(得分:0)
您也可以从同一个脚本调用相同的脚本。
$ cat script.sh
#!/bin/bash
# commands
# commands
sleep 1800
sh $0