From 7978df4c3de18100391177da1799bd02c44e9171 Mon Sep 17 00:00:00 2001 From: Mason Rowe Date: Tue, 29 Dec 2020 08:39:49 -0500 Subject: [PATCH] Fix formatting; Fix bug in GeekBench failure detection --- yabs.sh | 91 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 45 insertions(+), 46 deletions(-) diff --git a/yabs.sh b/yabs.sh index 26c9358..ddcf1e2 100755 --- a/yabs.sh +++ b/yabs.sh @@ -15,7 +15,7 @@ echo -e '# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #' echo -e '# Yet-Another-Bench-Script #' -echo -e '# v2020-12-27 #' +echo -e '# v2020-12-29 #' echo -e '# https://github.com/masonr/yet-another-bench-script #' echo -e '# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #' @@ -344,57 +344,56 @@ if [[ -z "$SKIP_FIO" && "$AVAIL_SPACE" -lt 2097152 ]]; then # 2GB = 2097152KB echo -e "\nLess than 2GB of space available. Skipping disk test..." # if the skip disk flag was set, skip the disk performance test, otherwise test disk performance elif [ -z "$SKIP_FIO" ]; then - echo -en "\nPreparing system for disk tests..." + # Perform ZFS filesystem detection and determine if we have enough free space according to spa_asize_inflation + ZFSCHECK="/sys/module/zfs/parameters/spa_asize_inflation" + if [[ -f "$ZFSCHECK" ]];then + mul_spa=$((($(cat /sys/module/zfs/parameters/spa_asize_inflation)*2))) + warning=0 + poss=() -# Perform ZFS filesystem detection and determine if we have enough free space according to spa_asize_inflation -ZFSCHECK="/sys/module/zfs/parameters/spa_asize_inflation" -if [[ -f "$ZFSCHECK" ]];then - mul_spa=$((($(cat /sys/module/zfs/parameters/spa_asize_inflation)*2))) - warning=0 - poss=() - - for pathls in $(df -Th | awk '{print $7}' | tail -n +2) - do - if [[ "${PWD##$pathls}" != "${PWD}" ]]; then - poss+=($pathls) + for pathls in $(df -Th | awk '{print $7}' | tail -n +2) + do + if [[ "${PWD##$pathls}" != "${PWD}" ]]; then + poss+=($pathls) + fi + done + + long="" + m=-1 + for x in ${poss[@]} + do + if [ ${#x} -gt $m ];then + m=${#x} + long=$x + fi + done + + size_b=$(df -Th | grep -w $long | grep -i zfs | awk '{print $5}' | tail -c 2 | head -c 1) + free_space=$(df -Th | grep -w $long | grep -i zfs | awk '{print $5}' | head -c -2) + + if [[ $size_b == 'T' ]]; then + free_space=$(bc <<< "$free_space*1024") + size_b='G' fi - done - - long="" - m=-1 - for x in ${poss[@]} - do - if [ ${#x} -gt $m ];then - m=${#x} - long=$x - fi - done - - size_b=$(df -Th | grep -w $long | grep -i zfs | awk '{print $5}' | tail -c 2 | head -c 1) - free_space=$(df -Th | grep -w $long | grep -i zfs | awk '{print $5}' | head -c -2) - - if [[ $size_b == 'T' ]]; then - free_space=$(bc <<< "$free_space*1024") - size_b='G' - fi - - if [[ $(df -Th | grep -w $long) == *"zfs"* ]];then - - if [[ $size_b == 'G' ]]; then - if [[ $(echo "$free_space < $mul_spa" | bc) -ne 0 ]];then + + if [[ $(df -Th | grep -w $long) == *"zfs"* ]];then + + if [[ $size_b == 'G' ]]; then + if [[ $(echo "$free_space < $mul_spa" | bc) -ne 0 ]];then + warning=1 + fi + else warning=1 fi - else - warning=1 + + fi + + if [[ $warning -eq 1 ]];then + echo -en "\nWarning! You are running YABS on a ZFS Filesystem and your disk space is too low for the fio test. Your test results will be inaccurate. You need at least $mul_spa GB free in order to complete this test accurately. For more information, please see https://github.com/masonr/yet-another-bench-script/issues/13\n" fi - fi - if [[ $warning -eq 1 ]];then - echo -en "\nWarning! You are running YABS on a ZFS Filesystem and your disk space is too low for the fio test. Your test results will be inaccurate. You need at least $mul_spa GB free in order to complete this test accurately. For more information, please see https://github.com/masonr/yet-another-bench-script/issues/13\n" - fi -fi - + echo -en "\nPreparing system for disk tests..." # create temp directory to store disk write/read test files DISK_PATH=$YABS_PATH/disk @@ -716,7 +715,7 @@ function launch_geekbench { # ensure the test ran successfully if [ -z "$GEEKBENCH_TEST" ]; then - if [[ ! -z "$IPV4_CHECK" ]]; then + if [[ -z "$IPV4_CHECK" ]]; then # Geekbench test failed to download because host lacks IPv4 (cdn.geekbench.com = IPv4 only) echo -e "\r\033[0KGeekbench releases can only be downloaded over IPv4. FTP the Geekbench files and run manually." elif [[ $ARCH != *x86* ]]; then