From 5ec0221634a49b17c934585b481f91be8fa661ac Mon Sep 17 00:00:00 2001 From: Timo Makinen Date: Tue, 27 May 2025 16:31:01 +0000 Subject: [PATCH] web_logs: Use mktemp for tmpfile --- roles/web_logs/files/parse-access-logs.sh | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/roles/web_logs/files/parse-access-logs.sh b/roles/web_logs/files/parse-access-logs.sh index 7983a99..92efe87 100755 --- a/roles/web_logs/files/parse-access-logs.sh +++ b/roles/web_logs/files/parse-access-logs.sh @@ -24,15 +24,16 @@ get_vhosts | while read -r vhost ; do [ -d "$destdir" ] || mkdir "$destdir" for i in $(seq 0 7); do isodate="$(print_date $i)" - outfile="${destdir}/access.log.${isodate}" + tmpfile="$(mktemp -p "$destdir")" + trap 'rm -f "$tmpfile"' EXIT combine-logs -d "$isodate" \ - /srv/weblog/*/"${vhost}".access.log* > "${outfile}.tmp" - if [ -s "${outfile}.tmp" ]; then - mv "${outfile}.tmp" "$outfile" - xz -6 "$outfile" - else - rm -f "${outfile}.tmp" + /srv/weblog/*/"${vhost}".access.log* | xz -6 > "$tmpfile" + if [ "$(xzcat "$tmpfile" | cut -c 1)" = "" ]; then + rm -f "$tmpfile" break + else + chmod 0640 "$tmpfile" + mv "$tmpfile" "${destdir}/access.log.${isodate}.xz" fi done done