我希望在时间帧之间比较文件的输出。 例: 运行命令,输出数值1到1000(1-1000)。我需要在15分钟后运行相同的命令,看看它是否增加了20,如果是,请发送电子邮件。
我认为这很简单,但我无法理解哪里开始。
我认为我必须运行命令并输出到文件,并且当命令在15分钟内再次运行时比较这些值。我认为我需要检查输出文件是否存在,然后创建,如果没有。
我是脚本新手,可以使用帮助。我得到了以下但只是被困在了之外。我希望尽可能简化
#!/bin/bash
today="date '+%Y_%m_%d'"
command="echo "select count(status) from alarm where status ='open'" | my-db"
# the command above will return the following for example
#count(status)
#34
$command > /tmp/$today.dblogout
答案 0 :(得分:2)
您可以简单地将最后已知(最后检索的)值保留在临时文件中,并且每次执行脚本时,检查自上次运行以来该值增加了多少(沿途更新最后的已知值)。
例如:
#!/bin/bash
store=/tmp/last_value
threshold=20
last=$(<"$store")
current=$(my-db <<<"select count(status) from alarm where status = 'open'" | tee "$store")
if (( current - last > threshold )); then
echo "Sending mail..."
fi
答案 1 :(得分:1)
我做了类似的事情,如果我的磁盘已满,请提醒我:
#!/bin/sh
THRESHOLD=85
datafile=/var/run/df_slash_var_pcent_avail.txt
# get previous value:
prev=$(tail -1 $datafile | cut -d\ -f2)
# get current value
curr=$(($(df /var --output=pcent | tail -1 | cut -d% -f1) + 0))
# store current value
echo "$(date +%s) $curr" >> $datafile
# if getting worse, alert
[[ $curr > $THRESHOLD ]] && [[ $curr > $prev ]] && smsme "/var grew from ${prev}% to ${curr}%"
这个脚本非常简单。随便问一下是否不清楚。
答案 2 :(得分:1)
几个选项
使用bash获取值
MAGIC_HOST