В OSX и Linux date -r
работает хорошо, я использую date -r "$file" +%s
, чтобы получить время модификации в секундах с начала эпохи:
is_file_older_than() {
seconds="$1"; file="$2";
if [[ ! -f "$file" ]]; then
return 1;
fi
modified_secs="$(date -r "$file" +%s)"
current_secs="$(date +%s)"
diff="$(expr "$current_secs" - "$modified_secs")"
if [[ "$diff" -gt "$seconds" ]]; then
return 0
fi
return 1
}
is_file_older_than 55 foobar.txt
это проверит, было ли время модификации в секундах для foobar.txt более ранним, чем 55 секунд назад.
Справочная страница с опцией -r :http://man7.org/linux/man-pages/man1/date.1.html
for i in messages cron maillog
do
if [[ $i == "messages" ]]
then
echo "Its messages log"
#you can use same script which you are using
#mailx -s subject <emailid>
elif [[ $i == "cron" ]];
then
echo "Its cronlog";
#you can use same script which you are using
#mailx -s subject <emailid>
elif [[ $i == "maillog" ]]
then
echo "its mail log";
#you can use same script which you are using
#mailx -s subject <emailid>
fi
done