Browse Source

Use cronic to prevent email logging of gpg key refreshes

Bob Mottram 8 years ago
parent
commit
87a6b1935e
2 changed files with 50 additions and 1 deletions
  1. 47
    0
      src/cronic
  2. 3
    1
      src/freedombone

+ 47
- 0
src/cronic View File

@@ -0,0 +1,47 @@
1
+#!/bin/bash
2
+
3
+# Cronic v3 - cron job report wrapper
4
+# Copyright 2007-2016 Chuck Houpt. No rights reserved, whatsoever.
5
+# Public Domain CC0: http://creativecommons.org/publicdomain/zero/1.0/
6
+
7
+set -eu
8
+
9
+TMP=$(mktemp -d)
10
+OUT=$TMP/cronic.out
11
+ERR=$TMP/cronic.err
12
+TRACE=$TMP/cronic.trace
13
+
14
+set +e
15
+"$@" >$OUT 2>$TRACE
16
+RESULT=$?
17
+set -e
18
+
19
+PATTERN="^${PS4:0:1}\\+${PS4:1}"
20
+if grep -aq "$PATTERN" $TRACE
21
+then
22
+    ! grep -av "$PATTERN" $TRACE > $ERR
23
+else
24
+    ERR=$TRACE
25
+fi
26
+
27
+if [ $RESULT -ne 0 -o -s "$ERR" ]
28
+    then
29
+    echo "Cronic detected failure or error output for the command:"
30
+    echo "$@"
31
+    echo
32
+    echo "RESULT CODE: $RESULT"
33
+    echo
34
+    echo "ERROR OUTPUT:"
35
+    cat "$ERR"
36
+    echo
37
+    echo "STANDARD OUTPUT:"
38
+    cat "$OUT"
39
+    if [ $TRACE != $ERR ]
40
+    then
41
+        echo
42
+        echo "TRACE-ERROR OUTPUT:"
43
+        cat "$TRACE"
44
+    fi
45
+fi
46
+
47
+rm -rf "$TMP"

+ 3
- 1
src/freedombone View File

@@ -5342,8 +5342,10 @@ function refresh_gpg_keys {
5342 5342
 	fi
5343 5343
 	if ! grep -q "$REFRESH_GPG_KEYS_SCRIPT" /etc/crontab; then
5344 5344
 		GPG_REFRESH_TIME=$(( RANDOM % 60 ))
5345
-		echo "$GPG_REFRESH_TIME            */$REFRESH_GPG_KEYS_HOURS *   *   *   root $REFRESH_GPG_KEYS_SCRIPT 2>&1 > /dev/null" >> /etc/crontab
5345
+		echo "$GPG_REFRESH_TIME            */$REFRESH_GPG_KEYS_HOURS *   *   *   root cronic $REFRESH_GPG_KEYS_SCRIPT 2>&1 > /dev/null" >> /etc/crontab
5346 5346
 		systemctl restart cron
5347
+	else
5348
+		sed -i "s|root $REFRESH_GPG_KEYS_SCRIPT|root cronic $REFRESH_GPG_KEYS_SCRIPT|g" /etc/crontab
5347 5349
 	fi
5348 5350
 }
5349 5351