Для получения желаемого результата можно использовать комбинацию find
, grep
и awk
. Ниже приведен oneliner, который распечатает файл с записанной максимальной температурой. Вывод
find . -mindepth 3 -exec echo -n "{} " \; -exec grep "PROCESSOR_ZONE" {} \; |
awk '{
split($4,val,"/");
gsub("C","",val[1]);
if (max<val[1]) {file=$1; max=val[1]}
} END {print(file)}'
Вывод
./2012.04.16/00:10/temps.txt
Ниже приведена версия сценария script
oneliner.
#!/bin/bash
# The path where temperature directories and files are kept
path="/tmp/tmp.ADntEuTlUT/"
# Temp file
tempfile=$(mktemp)
# Get the list of files name and their corresponding
# temperature data.
find "${path}" -mindepth 3 -exec echo -n "{} " \; -exec grep "PROCESSOR_ZONE" {} \; > "${tempfile}"
# Parse though the temp file to find the maximum
# temperature based on Celsius
awk '{split($4,val,"/");gsub("C","",val[1]);if(max<val[1]){file=$1;max=val[1]}} END{print(file)}' "${tempfile}"
# Removing the temp file
rm -f "${tempfile}"
Вы, вероятно, должны попытаться использовать уже существующее решение для мониторинга для этого. Это в значительной степени именно то, что они предназначены для того, чтобы сделать, контролировать условия и отправлять оповещения (SMS или адрес электронной почты). Возможно, вы захотите проверить Nagios
или Zabbix
для бесплатного решения мониторинга.
Я не использовал его, но он выглядит как Кактусы поддерживает оповещения на порогах
Collectdd
также может предупредить, но в основном я бы только использовать Collection
для исторической коллекции Статистика производительности, где мне не нужно было предупреждать о чем угодно.
Нижняя строка заключается в том, что для этого самостоятельно потратит ваше время, усилия и внедрить возможность ошибки в вашем механизме мониторинга. Это общая проблема с различными предустановленными решениями.