当前我要在最近2分钟内未修改文件时重新启动应用程序。为此,我写了一个小脚本来做到这一点(我是shell代码的初学者),但是我遇到了一些错误,并且没有成功获得我想要的行为:
while :
do
find ./ -type f -mmin -2
if [ "$?" = "0" ]; then
echo OK
else
JAR_FILE=jmxtrans-270-all.jar /appl/TCE/jmxtrans/jmxtrans.sh restart
fi
sleep 5m
done
您能指出我这样做的正确方法吗? 谢谢!
答案 0 :(得分:1)
使用此:
#!/bin/bash
while :
do
if [ $[ $(date +%s) - $(stat -c %X <your_file>)] -gt $[2*60] ]; then
# reset application here
else
echo "ok"
fi
sleep 1
done
date +%s
返回当前时间戳stat -c %X <your_file>
返回时间戳中的最后修改时间答案 1 :(得分:1)
find始终返回零返回码。可以使用类似这样的东西:
while :
do
count=$(find ./ -type f -mmin -2)
if [ "$count" != "0" ]; then
echo OK
else
JAR_FILE=jmxtrans-270-all.jar /appl/TCE/jmxtrans/jmxtrans.sh restart
fi
sleep 5m
done
答案 2 :(得分:0)
如果我的理解是正确的,并且您需要做的就是监视一些随机的find
(例如{{1 }}),根据上次访问时间,您可以尝试./
file