2012-07-04 2 views
0

У меня есть инструкция mailx как часть скина shells. Это часть условного заявления, которое будет отправлять электронную почту каждую минуту, если система не работает.Как проверить, используется ли Mailx в прошлом таймфрейме?

Есть ли способ проверить почту, если почта была отправлена ​​за последний час и отправлена ​​только в том случае, если результат является ложным?

tail -1 "/location/of/file.txt" | mail -s "Warning" [email protected]; 

ответ

2

используйте файл, чтобы указать время отправки. , например.

dowork() { 
    tail -1 "/location/of/file.txt" | mail -s "Warning" [email protected]; 
    touch ./checked.txt 
} 
if [[ -f ./checked.txt ]] ; then 
    if [[ $(expr $(date '+%s') - $(stat -c '%Y' ./checked.txt)) -gt 3600 ]]; then 
      dowork 
    fi 
else 
    dowork 
fi 
+1

Не нужно использовать 'expr'. Используйте '(())' и '>' вместо '[[]]' и '-gt'. –

+0

@pizza Спасибо, я надеялся на более элегантное решение, не используя файл. Но все будет хорошо. Спасибо за ваш быстрый ответ. – Rhys