Révision f6b8e2c1
[system/debsecan] Don't use temporary files and fix shellcheck warnings
Signed-off-by: Olivier Mehani <shtrom@ssji.net>
| plugins/system/debsecan | ||
|---|---|---|
| 48 | 48 |
fi |
| 49 | 49 |
|
| 50 | 50 |
# Determine suite from filename... |
| 51 |
SUITE=`echo $0 | sed 's/.*_//'`
|
|
| 52 |
if [ ${SUITE} = ${0} ]; then
|
|
| 51 |
SUITE=$(echo "$0" | sed 's/.*_//')
|
|
| 52 |
if [ "${SUITE}" = "${0}" ]; then
|
|
| 53 | 53 |
# ...or fall back onto configuration in environment |
| 54 | 54 |
SUITE=${suite:-sid}
|
| 55 | 55 |
fi |
| ... | ... | |
| 58 | 58 |
REMOTEWARN=${remote_warning:-1}
|
| 59 | 59 |
REMOTECRIT=${remote_critical:-10}
|
| 60 | 60 |
|
| 61 |
CVERE="\(\(CVE\|TMP\)[-0-9A-Fa-f]\+\)" |
|
| 62 | 61 |
if [ "$1" = "config" ] ; then |
| 63 | 62 |
cat <<EOF_ |
| 64 | 63 |
graph_title DebSecan : vulnerabilities for ${SUITE}
|
| ... | ... | |
| 76 | 75 |
remote.warning ${REMOTEWARN}
|
| 77 | 76 |
remote.critical ${REMOTECRIT}
|
| 78 | 77 |
high.label high |
| 79 |
high.colour F70000
|
|
| 78 |
high.colour FF5500
|
|
| 80 | 79 |
high.type GAUGE |
| 81 | 80 |
high.draw AREASTACK |
| 82 | 81 |
high.min 0 |
| ... | ... | |
| 110 | 109 |
exit 0 |
| 111 | 110 |
fi |
| 112 | 111 |
|
| 113 |
CVECOUNTRE="s/^ *\([0-9]\+\) \+\([^ ]\+\)/\2 (\1)/" |
|
| 112 |
ALL=$(debsecan --suite "${SUITE}" 2> /dev/null)
|
|
| 113 |
REMOTE=$(echo "$ALL" | grep 'remotely') |
|
| 114 |
NONREMOTE=$(echo "$ALL" | grep -v 'remotely') |
|
| 115 |
|
|
| 116 |
HIGH=$(echo "${NONREMOTE}" | grep 'high urgency')
|
|
| 117 |
MEDIUM=$(echo "${NONREMOTE}" | grep 'medium urgency')
|
|
| 118 |
LOW=$(echo "${NONREMOTE}" | grep 'low urgency')
|
|
| 119 |
OTHER=$(echo "${NONREMOTE}" | grep -v 'urgency')
|
|
| 120 |
FIXED=$(echo "${ALL}" | grep '(fixed')
|
|
| 114 | 121 |
|
| 115 |
OUT=`mktemp -t debsecan.XXXXXX` |
|
| 116 |
REMOTE=`mktemp -t debsecan.XXXXXX` |
|
| 117 |
HIGH=`mktemp -t debsecan.XXXXXX` |
|
| 118 |
MEDIUM=`mktemp -t debsecan.XXXXXX` |
|
| 119 |
LOW=`mktemp -t debsecan.XXXXXX` |
|
| 120 |
OTHER=`mktemp -t debsecan.XXXXXX` |
|
| 121 |
FIXED=`mktemp -t debsecan.XXXXXX` |
|
| 122 |
debsecan --suite ${SUITE} 2> /dev/null > ${OUT}
|
|
| 123 |
grep 'remotely' ${OUT} > ${REMOTE}
|
|
| 124 |
grep 'high urgency' ${OUT} | grep -v 'remotely' > ${HIGH}
|
|
| 125 |
grep 'medium urgency' ${OUT} | grep -v 'remotely' > ${MEDIUM}
|
|
| 126 |
grep 'low urgency)' ${OUT} | grep -v 'remotely' > ${LOW}
|
|
| 127 |
grep '(fixed' ${OUT} > ${FIXED}
|
|
| 128 |
|
|
| 129 |
high=`cat ${HIGH} | wc -l`
|
|
| 130 |
remote=`cat ${REMOTE} | wc -l`
|
|
| 131 |
medium=`cat ${MEDIUM} | wc -l`
|
|
| 132 |
low=`cat ${LOW} | wc -l`
|
|
| 133 |
other=`cat ${OTHER} | wc -l`
|
|
| 134 |
fixed=`cat ${FIXED} | wc -l`
|
|
| 122 |
remote_count=$(echo "${REMOTE}" | wc -l)
|
|
| 123 |
high_count=$(echo "${HIGH}" | wc -l)
|
|
| 124 |
medium_count=$(echo "${MEDIUM}" | wc -l)
|
|
| 125 |
low_count=$(echo "${LOW}" | wc -l)
|
|
| 126 |
other_count=$(echo "${OTHER}" | wc -l)
|
|
| 127 |
fixed_count=$(echo "${FIXED}" | wc -l)
|
|
| 128 |
|
|
| 129 |
CVECOUNTRE="s/^ *\([0-9]\+\) \+\([^ ]\+\)/\2 (\1)/" |
|
| 135 | 130 |
|
| 131 |
# shellcheck disable=SC2005 disable=SC2046 |
|
| 132 |
# The nested $(echo ...)s are needed to yet the newlines |
|
| 136 | 133 |
cat <<EOF |
| 137 |
remote.value $remote |
|
| 138 |
remote.extinfo `echo $(cut -f 2 -d" " ${REMOTE} | uniq -c | sort -nr | sed "${CVECOUNTRE}")`
|
|
| 139 |
high.value $high |
|
| 140 |
high.extinfo `echo $(cut -f 2 -d" " ${HIGH} | uniq -c | sort -nr | sed "${CVECOUNTRE}")`
|
|
| 141 |
medium.value $medium |
|
| 142 |
medium.extinfo `echo $(cut -f 2 -d" " ${MEDIUM} | uniq -c | sort -nr | sed "${CVECOUNTRE}")`
|
|
| 143 |
low.value $low |
|
| 144 |
low.extinfo `echo $(cut -f 2 -d" " ${LOW} | uniq -c | sort -nr | sed "${CVECOUNTRE}")`
|
|
| 145 |
other.value $other |
|
| 146 |
other.extinfo `echo $(cut -f 2 -d" " ${OTHER} | uniq -c | sort -nr | sed "${CVECOUNTRE}")`
|
|
| 147 |
fixed.value $fixed |
|
| 148 |
fixed.extinfo `echo $(cut -f 2 -d" " ${FIXED} | uniq -c | sort -nr | sed "${CVECOUNTRE}")`
|
|
| 134 |
remote.value $remote_count
|
|
| 135 |
remote.extinfo $(echo $(echo "${REMOTE}" | cut -f 2 -d " "| uniq -c | sort -nr | sed "${CVECOUNTRE}"))
|
|
| 136 |
high.value $high_count
|
|
| 137 |
high.extinfo $(echo $(echo "${HIGH}" | cut -f 2 -d " " | uniq -c | sort -nr | sed "${CVECOUNTRE}"))
|
|
| 138 |
medium.value $medium_count
|
|
| 139 |
medium.extinfo $(echo $(echo "${MEDIUM}" | cut -f 2 -d " " | uniq -c | sort -nr | sed "${CVECOUNTRE}"))
|
|
| 140 |
low.value $low_count
|
|
| 141 |
low.extinfo $(echo $(echo "${LOW}" | cut -f 2 -d " " | uniq -c | sort -nr | sed "${CVECOUNTRE}"))
|
|
| 142 |
other.value $other_count
|
|
| 143 |
other.extinfo $(echo $(echo "${OTHER}" | cut -f 2 -d " " | uniq -c | sort -nr | sed "${CVECOUNTRE}"))
|
|
| 144 |
fixed.value $fixed_count
|
|
| 145 |
fixed.extinfo $(echo $(echo "${FIXED}" | cut -f 2 -d " " | uniq -c | sort -nr | sed "${CVECOUNTRE}"))
|
|
| 149 | 146 |
EOF |
Formats disponibles : Unified diff