journalogs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/bin/sh
  2. # journalogs - evaluate system JOURNALD
  3. #------------------------------------------------
  4. # http://www.wyae.de/software/journalogs
  5. # https://github.com/wyae/journalogs
  6. # 2015- by Volker Tanger <volker.tanger@wyae.de>
  7. #
  8. # Licensed under the EUROPEAN UNION PUBLIC LICENCE v. 1.2 (or later)
  9. # This is free software - see attached file LICENSE_EUPL-1.2_EN.txt
  10. # and available in other languages under
  11. # https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
  12. #------------------------------------------------
  13. JLDIR=/usr/local/etc/journalogs
  14. MAILTO=root
  15. #------------------------------------------------
  16. journalctl --since "1 hour ago" | tail -n +2 | grep -E -v --file=$JLDIR/ignore_pattern > /tmp/journalogs_$$_all.tmp
  17. # just create the file in case there are no errors, so script does not break
  18. touch /tmp/journalogs_$$_all.tmp
  19. #-----------------
  20. # find all ALERT patterns
  21. grep -E --file=$JLDIR/alert_pattern < /tmp/journalogs_$$_all.tmp > /tmp/journalogs_$$_alert.tmp
  22. if [ -s /tmp/journalogs_$$_alert.tmp ]; then
  23. echo " " >> /tmp/journalogs_$$_mail.tmp
  24. echo "=========================" >> /tmp/journalogs_$$_mail.tmp
  25. echo "!!! LOG ALERTS !!!" >> /tmp/journalogs_$$_mail.tmp
  26. echo "=========================" >> /tmp/journalogs_$$_mail.tmp
  27. cat /tmp/journalogs_$$_alert.tmp >> /tmp/journalogs_$$_mail.tmp
  28. echo " " >> /tmp/journalogs_$$_mail.tmp
  29. fi
  30. #-----------------
  31. # find all UNKNOWN patterns
  32. grep -E -v --file=$JLDIR/alert_pattern < /tmp/journalogs_$$_all.tmp > /tmp/journalogs_$$_unknown.tmp
  33. if [ -s /tmp/journalogs_$$_unknown.tmp ]; then
  34. echo " " >> /tmp/journalogs_$$_mail.tmp
  35. echo "-----------------------" >> /tmp/journalogs_$$_mail.tmp
  36. echo "Notable journal entries" >> /tmp/journalogs_$$_mail.tmp
  37. echo "-----------------------" >> /tmp/journalogs_$$_mail.tmp
  38. cat /tmp/journalogs_$$_unknown.tmp >> /tmp/journalogs_$$_mail.tmp
  39. echo " " >> /tmp/journalogs_$$_mail.tmp
  40. fi
  41. #-----------------
  42. # send mail if issues
  43. if [ -s /tmp/journalogs_$$_mail.tmp ]; then
  44. cat /tmp/journalogs_$$_mail.tmp | mail -s "Issues on $( hostname ) in JOURNALD" $MAILTO
  45. fi
  46. rm /tmp/journalogs_*.tmp