Есть ли способ добавить команду для отправки по почте, если он обнаружит какие-либо изменения в /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