Я не эксперт в написании сценариев оболочки, но я также ищу очень конкретное решение.
ОПЕРАЦИОННЫЕ СИСТЕМЫ: Релиз CentOS 5.2 (окончательный)
У меня есть автономный Java, который продолжает писать (все System.out.println) в файл журнала. По какой-то неизвестной причине эта автономная версия Java в какой-то момент перестает работать на моем сервере, и в конечном итоге запись журналов также перестает работать.
Я хочу иметь сценарий, который проверяет дату и время последнего изменения файла журнала с текущими датой и временем на сервере. Если разница во времени превышает 5 минут, я хочу немедленно отправить электронное письмо моему списку получателей. Таким образом, я узнаю, когда эта автономная версия Java перестанет работать.
Я перенесу этот сценарий в crontab и заставлю его запускаться каждую минуту, чтобы весь этот процесс был автоматизирован.
Расположение файла журнала: /usr/local/logs/standalone.log
однако мне было скучно ... что-то вроде:
#!/bin/sh
SUBJECT="blah is more than 5 minutes old!"
EMAIL="email@example.com"
MSG="/tmp/emailmessage"
MOD=`stat --printf=%Y $1`
NOW=`date +%s`
DIFF=$(($NOW-$MOD))
if [ $DIFF > 300 ]; then
echo "$1 is more than 5 minutes old!" > $MSG
mail -s "$SUBJECT" "$EMAIL" < $MSG
fi