Назад | Перейти на главную страницу

команда сценария diff для отправки по почте

Есть ли способ добавить команду для отправки по почте, если он обнаружит какие-либо изменения в /newchanes.list. письмо с вложением (/ changes), в котором говорится, что были обнаружены изменения, а если нет, то в строке темы будет сказано: никаких изменений не было.

#!/bin/bash 

if [ ! -f "/suid.old" ]; then                          # note: ! 
   find / -perm -4000 -o -perm -2000 -ls > /suid.old   # note: dash before ls; slash before file 
else 
   find / -perm 4000 -o -perm -2000 -ls > /suid.new 
   diff /suid.old /suid.new > /newchanges.list 
   mv /suid.new /suid.old                              # could be handy 
fi

Вы можете сделать что-то вроде:

...
diff /suid.old /suid.new > /newchanges.list
if [ $? -eq 0 ]
then
    mail -s "No changed made" <email@domain.com>
else
    mail -s "Changes Found" <email@domain.com> < /newchanges.list
fi
...

diff завершается с кодом выхода 0 (по крайней мере, в моем ящике ubuntu вы должны проверить коды выхода в своей системе), если никаких изменений не обнаружено.

Вы можете использовать переключатель -s в тесте, чтобы увидеть, является ли полученный файл пустым, если не адресом электронной почты. Хотя это может быть предостережением для этого метода ...

   -s FILE
          FILE exists and has a size greater than zero