fixes, prometheus, lots of stuff
[distro-setup] / epanic-clean
index a7220c2cf03267c2c2aacdd6822c172537d2d297..4f365fda5aaf907dc66e69323166b0412c46fc72 100755 (executable)
@@ -32,14 +32,26 @@ main() {
     return 0
   fi
 
+  # example line:
+  # 2022-02-09 22:08:14.683 [59759] socket bind() to port 25 for address 10.8.0.28 failed: Cannot assign requested address: daemon abandoned
+  if [[ -e /etc/systemd/system/exim4.service.d/backup.conf ]]; then
+    regex="socket bind() to port 25 for address"
+    grep "$regex" $pl >> $pl-archive ||:
+    sed -i "/$regex/d" $pl
+  fi
+
+  # this is a strange message due to running as nonroot
+  # regex='exim user lost privilege for using -C option'
+  # sed -i "/$regex/d" $pl
+
   # seems to randomly be caused by
   # Starting exim4-base housekeeping, exim4-base.service
   regex="^[^ ]* 00:00:0.* Failed writing transport results to pipe: Broken pipe$"
   grep "$regex" $pl >> $pl-archive ||:
   sed -i "/$regex/d" $pl
 
-  ## begin broken pipe ##
-  regex="Failed writing transport results to pipe: Broken pipe$"
+  ## begin broken pipe & write lock ##
+  regex="Failed to get write lock\|Failed writing transport results to pipe: Broken pipe$"
   now_s=$(date +%s)
   newlines=false
   count=0
@@ -51,17 +63,17 @@ main() {
     fi
   done < <(grep "$regex" $pl ||:)
   if (( count )); then
-    # i see these in groups of 3 for the same message around once a day
+    # I see broken pipe in groups of 3 for the same message around once a day
     # randomly.  I'm guessing they are related to running 2 instances of
     # exim which share the same spool.  So, if we have some, but not in
     # the last 5 minutes, and less than 20, it should be fine to clear
-    # them.
+    # them. write lock happens less but can fit under the same rule.
     if (( count > 20 )); then
       cat $pl
-      elif ! $newlines; then
+    elif ! $newlines; then
       grep "$regex" $pl >>$pl-archive
       sed -i "/$regex/d" $pl
-      fi
+    fi
   fi
   ## end broken pipe ##
 
@@ -114,12 +126,15 @@ spamassassin spam acl condition
 EOF
 }
 
-if [[ $INVOCATION_ID ]]; then
-  # this is to prevent systemd from filling up the journal
-  for (( runcount=0; runcount < 100; runcount++ )); do
+loop-main() {
+  while true; do
     main
     sleep 30
   done
+}
+
+if [[ $INVOCATION_ID ]]; then
+  loop-main
 else
   main
 fi