условие crontab, если размер файла больше 5000 КБ, чем отправить электронное письмо

#email #find #conditional #crontab

#Адрес электронной почты #Найти #условные операторы #cron

Вопрос:

У меня есть эта неполная команда:

 find /var/www/vhosts/domain/folder/ -name '*.flv' -size  5000k amp;amp; /bin/mail -s "The file is available!" "my@address.com" > /dev/null
  

Я не могу вставить условие, если размер файла больше 5000 кб, он должен отправлять почту, иначе нет.

Спасибо.

Ответ №1:

find всегда возвращает код выхода 0, за исключением случаев, когда что-то было не так. Следовательно, вы должны использовать что-то другое для генерации соответствующего кода выхода (! = 0), который можно использовать с amp;amp; . Я бы предложил grep , например:

 find /var/www/vhosts/domain/folder/ -name '*.flv' -size  5000k | grep flv amp;amp; /bin/mail -s "The file is available!" "my@address.com" > /dev/null
  

Если grep обнаруживает строку, содержащую строку flv в выходных данных find , он возвращает 0, в противном случае 1. mail Команда будет выполнена только при коде выхода 0 из grep .