Я пропустил простой скрипт, чтобы проверить, существуют ли какие-либо файлы (завершены .txt) в dirctoey старше 6 часов после проверки отправки электронной почты. Сценарий не работает хорошо, и, как и ожидалось, я спрашиваю вас, есть ли более простой и эффективный способ сделать это? В принципе, просто нужно проверить, существует ли файл с файлом .txt и старше 6 часов, если да, то нужно отправить электронное письмо.bash script проверить, существует ли файл и отправлено информационное сообщение
Это мой сценарий
#!/bin/bash
DATE=`date +%Y.%m.%d-%H.%M`
HOSTNAME='host'
BASEDIR=`/usr/local/se/work/jobs/`
LOGFILE=`/usr/local/se/work/jobs/logs/jobs.log`
VERTEILER="anyemail"
# Functions
#
# function check if the jobs are exists
'find ${BASEDIR} -name "*.txt" -nmin +354' 2>$1 >>$LOGFILE
#function mail
cat << EOF | mailx -s "Example ${HOSTNAME} jobs `date +%Y.%m.%d-%H.%M`" -a ${LOGFILE} ${VERTEILER}
Hi,
Please check the Jobs.
Details :
`ls -ltr /usr/local/se/work/jobs/`
------------ END ----------------------------------------
.
Thank you
EOF не является конечным файлом, а маркером, который вам нужно поставить на линию после 'Спасибо'. Пожалуйста, замените backtics на '$ (ls -ltr something)', что является предпочтительным способом вызова подпроцесса. Удалите одинарные кавычки с помощью find. –