From d3c75ab94ea33793c64964edb66bb7f04af1df1c Mon Sep 17 00:00:00 2001 From: Jeremy Lecour Date: Wed, 23 Nov 2022 12:57:28 +0100 Subject: [PATCH] bkctld-stats: filter active jails and columnize the output --- server/CHANGELOG.md | 2 ++ server/lib/bkctld-stats | 17 +++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/server/CHANGELOG.md b/server/CHANGELOG.md index 35de9dc..2c7ebd2 100644 --- a/server/CHANGELOG.md +++ b/server/CHANGELOG.md @@ -12,6 +12,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +* stats: filter active jails and columnize the output + ### Deprecated ### Removed diff --git a/server/lib/bkctld-stats b/server/lib/bkctld-stats index e023a14..1f0d2ce 100755 --- a/server/lib/bkctld-stats +++ b/server/lib/bkctld-stats @@ -20,22 +20,24 @@ EOF printf "Last update of index file : " stat --format=%Y "${INDEX_DIR}/.lastrun.duc" | xargs -i -n1 date -R -d "@{}" -echo " " | awk '{ printf("%- 30s %- 10s %- 10s %- 15s\n", $1, $2, $3, $4); }' duc_output=$(mktemp) stat_output=$(mktemp) incs_output=$(mktemp) +jail_patterns_list=$(mktemp) # shellcheck disable=SC2064 -trap "rm ${duc_output} ${incs_output} ${stat_output}" 0 +trap "rm ${duc_output} ${incs_output} ${stat_output} ${jail_patterns_list}" 0 -"${DUC}" ls -d "${IDX_FILE}" "${JAILDIR}" > "${duc_output}" +"${DUC}" ls --database "${IDX_FILE}" "${JAILDIR}" > "${duc_output}" -awk '{ print $2 }' "${duc_output}" | while read jail_name; do +jails_list | sed -e "s/^\(.*\)$/\\\\b\1\\\\b/" > "${jail_patterns_list}" + +grep -f "${jail_patterns_list}" "${duc_output}" | awk '{ print $2 }' | while read jail_name; do jail_path=$(jail_path "${jail_name}") stat --format=%Y "${jail_path}/var/log/lastlog" | xargs -i -n1 date -d "@{}" "+%d-%m-%Y" >> "${stat_output}" - incs_policy_file=$(current_jail_incs_policy_file ${jail_name}) + incs_policy_file=$(current_jail_incs_policy_file "${jail_name}") incs_policy="0" if [ -r "${incs_policy_file}" ]; then days=$(grep "^\+" "${incs_policy_file}" | grep --count "day") @@ -45,4 +47,7 @@ awk '{ print $2 }' "${duc_output}" | while read jail_name; do echo "${incs_policy}" >> "${incs_output}" done -paste "${duc_output}" "${incs_output}" "${stat_output}" | awk '{ printf("%- 30s %- 10s %- 10s %- 15s\n", $2, $1, $3, $4); }' +( + echo " " + paste "${duc_output}" "${incs_output}" "${stat_output}" | awk '{ printf("%s %s %s %s\n", $2, $1, $3, $4); }' +) | column -t