diff options
-rwxr-xr-x | scripts/files_integrity_croncheck.sh | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/scripts/files_integrity_croncheck.sh b/scripts/files_integrity_croncheck.sh index 0cf99d8..01b4951 100755 --- a/scripts/files_integrity_croncheck.sh +++ b/scripts/files_integrity_croncheck.sh @@ -23,8 +23,15 @@ mkdir -p "$output_dir" for dir in "${dirs[@]}"; do basefn="$(printf "%s\n" "$dir" | sed 's:/:_:g;s/^_//;s/_$//')" outputfn="$output_dir/${basefn}_$(date +%F_%T).md5sum.gz" + outputlistfn="$output_dir/${basefn}.tmplist" - find "$dir"/ -type f -print0 | sort -z | xargs -0 md5sum -b \ + # store file list: it avoids having the complete list in memory for all + # the time the md5sums processes will take to complete which can be + # consequent. + ionice -c 3 nice -n 19 find "$dir"/ -type f -print0 | sort -z \ + > "$outputlistfn" + + xargs --arg-file="$outputlistfn" -0 ionice -c 3 nice -n 19 md5sum -b \ | gzip -9 > "$outputfn" diff_two_last_by_mail \ |