forked from evolix/evocheck
Better cleanup of temporary files + buffer for main output
This commit is contained in:
parent
3fa6c082a1
commit
1f81732c44
53
evocheck.sh
53
evocheck.sh
|
@ -142,9 +142,9 @@ failed() {
|
||||||
RC=1
|
RC=1
|
||||||
if [ "${QUIET}" != 1 ]; then
|
if [ "${QUIET}" != 1 ]; then
|
||||||
if [ -n "${check_comments}" ] && [ "${VERBOSE}" = 1 ]; then
|
if [ -n "${check_comments}" ] && [ "${VERBOSE}" = 1 ]; then
|
||||||
printf "%s FAILED! %s\n" "${check_name}" "${check_comments}" 2>&1
|
printf "%s FAILED! %s\n" "${check_name}" "${check_comments}" >> "${main_output_file}"
|
||||||
else
|
else
|
||||||
printf "%s FAILED!\n" "${check_name}" 2>&1
|
printf "%s FAILED!\n" "${check_name}" >> "${main_output_file}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -328,8 +328,11 @@ check_tmoutprofile() {
|
||||||
check_alert5boot() {
|
check_alert5boot() {
|
||||||
if is_debian_buster || is_debian_bullseye; then
|
if is_debian_buster || is_debian_bullseye; then
|
||||||
grep -qs "^date" /usr/share/scripts/alert5.sh || failed "IS_ALERT5BOOT" "boot mail is not sent by alert5 init script"
|
grep -qs "^date" /usr/share/scripts/alert5.sh || failed "IS_ALERT5BOOT" "boot mail is not sent by alert5 init script"
|
||||||
test -f /etc/systemd/system/alert5.service || failed "IS_ALERT5BOOT" "alert5 unit file is missing"
|
if [ -f /etc/systemd/system/alert5.service ]; then
|
||||||
systemctl is-enabled alert5 -q || failed "IS_ALERT5BOOT" "alert5 unit is not enabled"
|
systemctl is-enabled alert5.service -q || failed "IS_ALERT5BOOT" "alert5 unit is not enabled"
|
||||||
|
else
|
||||||
|
failed "IS_ALERT5BOOT" "alert5 unit file is missing"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
if [ -n "$(find /etc/rc2.d/ -name 'S*alert5')" ]; then
|
if [ -n "$(find /etc/rc2.d/ -name 'S*alert5')" ]; then
|
||||||
grep -q "^date" /etc/rc2.d/S*alert5 || failed "IS_ALERT5BOOT" "boot mail is not sent by alert5 init script"
|
grep -q "^date" /etc/rc2.d/S*alert5 || failed "IS_ALERT5BOOT" "boot mail is not sent by alert5 init script"
|
||||||
|
@ -592,9 +595,9 @@ check_evobackup() {
|
||||||
}
|
}
|
||||||
# Vérification de l'exclusion des montages (NFS) dans les sauvegardes
|
# Vérification de l'exclusion des montages (NFS) dans les sauvegardes
|
||||||
check_evobackup_exclude_mount() {
|
check_evobackup_exclude_mount() {
|
||||||
excludes_file=$(mktemp)
|
excludes_file=$(mktemp --tmpdir=${TMPDIR:-/tmp} "evocheck.evobackup_exclude_mount.XXXXX")
|
||||||
# shellcheck disable=SC2064
|
files_to_cleanup="${files_to_cleanup} ${excludes_file}"
|
||||||
trap "rm -f ${excludes_file}" 0
|
|
||||||
# shellcheck disable=SC2044
|
# shellcheck disable=SC2044
|
||||||
for evobackup_file in $(find /etc/cron* -name '*evobackup*' | grep -v -E ".disabled$"); do
|
for evobackup_file in $(find /etc/cron* -name '*evobackup*' | grep -v -E ".disabled$"); do
|
||||||
grep -- "--exclude " "${evobackup_file}" | grep -E -o "\"[^\"]+\"" | tr -d '"' > "${excludes_file}"
|
grep -- "--exclude " "${evobackup_file}" | grep -E -o "\"[^\"]+\"" | tr -d '"' > "${excludes_file}"
|
||||||
|
@ -603,7 +606,6 @@ check_evobackup_exclude_mount() {
|
||||||
failed "IS_EVOBACKUP_EXCLUDE_MOUNT" "${mount} is not excluded from ${evobackup_file} backup script"
|
failed "IS_EVOBACKUP_EXCLUDE_MOUNT" "${mount} is not excluded from ${evobackup_file} backup script"
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
rm -rf "${excludes_file}"
|
|
||||||
}
|
}
|
||||||
# Verification de la presence du userlogrotate
|
# Verification de la presence du userlogrotate
|
||||||
check_userlogrotate() {
|
check_userlogrotate() {
|
||||||
|
@ -809,10 +811,12 @@ check_tune2fs_m5() {
|
||||||
check_evolinuxsudogroup() {
|
check_evolinuxsudogroup() {
|
||||||
if is_debian_stretch || is_debian_buster || is_debian_bullseye; then
|
if is_debian_stretch || is_debian_buster || is_debian_bullseye; then
|
||||||
if grep -q "^evolinux-sudo:" /etc/group; then
|
if grep -q "^evolinux-sudo:" /etc/group; then
|
||||||
|
if [ -f /etc/sudoers.d/evolinux ]; then
|
||||||
grep -qE '^%evolinux-sudo +ALL ?= ?\(ALL:ALL\) ALL' /etc/sudoers.d/evolinux \
|
grep -qE '^%evolinux-sudo +ALL ?= ?\(ALL:ALL\) ALL' /etc/sudoers.d/evolinux \
|
||||||
|| failed "IS_EVOLINUXSUDOGROUP" "missing evolinux-sudo directive in sudoers file"
|
|| failed "IS_EVOLINUXSUDOGROUP" "missing evolinux-sudo directive in sudoers file"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
check_userinadmgroup() {
|
check_userinadmgroup() {
|
||||||
if is_debian_stretch || is_debian_buster || is_debian_bullseye; then
|
if is_debian_stretch || is_debian_buster || is_debian_bullseye; then
|
||||||
|
@ -1064,8 +1068,10 @@ check_squidevolinuxconf() {
|
||||||
check_duplicate_fs_label() {
|
check_duplicate_fs_label() {
|
||||||
# Do it only if thereis blkid binary
|
# Do it only if thereis blkid binary
|
||||||
BLKID_BIN=$(command -v blkid)
|
BLKID_BIN=$(command -v blkid)
|
||||||
if [ -x "$BLKID_BIN" ]; then
|
if [ -n "$BLKID_BIN" ]; then
|
||||||
tmpFile=$(mktemp -p /tmp)
|
tmpFile=$(mktemp --tmpdir=${TMPDIR:-/tmp} "evocheck.duplicate_fs_label.XXXXX")
|
||||||
|
files_to_cleanup="${files_to_cleanup} ${tmpFile}"
|
||||||
|
|
||||||
parts=$($BLKID_BIN -c /dev/null | grep -ve raid_member -e EFI_SYSPART | grep -Eo ' LABEL=".*"' | cut -d'"' -f2)
|
parts=$($BLKID_BIN -c /dev/null | grep -ve raid_member -e EFI_SYSPART | grep -Eo ' LABEL=".*"' | cut -d'"' -f2)
|
||||||
for part in $parts; do
|
for part in $parts; do
|
||||||
echo "$part" >> "$tmpFile"
|
echo "$part" >> "$tmpFile"
|
||||||
|
@ -1078,7 +1084,6 @@ check_duplicate_fs_label() {
|
||||||
labels=$(echo -n $tmpOutput | tr '\n' ' ')
|
labels=$(echo -n $tmpOutput | tr '\n' ' ')
|
||||||
failed "IS_DUPLICATE_FS_LABEL" "Duplicate labels: $labels"
|
failed "IS_DUPLICATE_FS_LABEL" "Duplicate labels: $labels"
|
||||||
fi
|
fi
|
||||||
rm "$tmpFile"
|
|
||||||
else
|
else
|
||||||
failed "IS_DUPLICATE_FS_LABEL" "blkid not found in ${PATH}"
|
failed "IS_DUPLICATE_FS_LABEL" "blkid not found in ${PATH}"
|
||||||
fi
|
fi
|
||||||
|
@ -1459,9 +1464,9 @@ add_to_path() {
|
||||||
echo "$PATH" | grep -qF "${new_path}" || export PATH="${PATH}:${new_path}"
|
echo "$PATH" | grep -qF "${new_path}" || export PATH="${PATH}:${new_path}"
|
||||||
}
|
}
|
||||||
check_versions() {
|
check_versions() {
|
||||||
versions_file=$(mktemp --tmpdir=/tmp "evocheck-versions.XXXXX")
|
versions_file=$(mktemp --tmpdir=${TMPDIR:-/tmp} "evocheck.versions.XXXXX")
|
||||||
# shellcheck disable=SC2064
|
files_to_cleanup="${files_to_cleanup} ${versions_file}"
|
||||||
trap "rm -f ${versions_file}" 0
|
|
||||||
download_versions "${versions_file}"
|
download_versions "${versions_file}"
|
||||||
add_to_path "/usr/share/scripts"
|
add_to_path "/usr/share/scripts"
|
||||||
|
|
||||||
|
@ -1479,8 +1484,6 @@ check_versions() {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
rm -f "${versions_file}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
|
@ -1489,6 +1492,9 @@ main() {
|
||||||
# Detect operating system name, version and release
|
# Detect operating system name, version and release
|
||||||
detect_os
|
detect_os
|
||||||
|
|
||||||
|
main_output_file=$(mktemp --tmpdir=${TMPDIR:-/tmp} "evocheck.main.XXXXX")
|
||||||
|
files_to_cleanup="${files_to_cleanup} ${main_output_file}"
|
||||||
|
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
# Tests communs à tous les systèmes
|
# Tests communs à tous les systèmes
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
|
@ -1717,8 +1723,19 @@ main() {
|
||||||
# - NRPEDISK et NRPEPOSTFIX
|
# - NRPEDISK et NRPEPOSTFIX
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -f "${main_output_file}" ]; then
|
||||||
|
if [ $(cat "${main_output_file}" | wc -l) -gt 0 ]; then
|
||||||
|
|
||||||
|
cat "${main_output_file}" 2>&1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
exit ${RC}
|
exit ${RC}
|
||||||
}
|
}
|
||||||
|
cleanup_temp_files() {
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
rm -f ${files_to_cleanup}
|
||||||
|
}
|
||||||
|
|
||||||
PROGNAME=$(basename "$0")
|
PROGNAME=$(basename "$0")
|
||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
|
@ -1732,6 +1749,10 @@ readonly ARGS
|
||||||
export LANG=C
|
export LANG=C
|
||||||
export LANGUAGE=C
|
export LANGUAGE=C
|
||||||
|
|
||||||
|
files_to_cleanup=""
|
||||||
|
# shellcheck disable=SC2064
|
||||||
|
trap cleanup_temp_files 0
|
||||||
|
|
||||||
# Source configuration file
|
# Source configuration file
|
||||||
# shellcheck disable=SC1091
|
# shellcheck disable=SC1091
|
||||||
test -f /etc/evocheck.cf && . /etc/evocheck.cf
|
test -f /etc/evocheck.cf && . /etc/evocheck.cf
|
||||||
|
|
Loading…
Reference in a new issue