@cryptotaxi247 / netdata-1 / commits / e408ed4bf

fix: use 'diskutil info` to calculate the disk size on macOS (#12764)

Ilya Mashchenko committed Apr 27, 2022 at 10:49 UTC e408ed4bf719f720211bbf4aee3098b3291b652a
1 file changed +14 -9
daemon/system-info.sh
+14 -9
@@ -332,18 +332,23 @@ DISK_SIZE="unknown"
332 DISK_DETECTION="none"
333
334 if [ "${KERNEL_NAME}" = "Darwin" ]; then
335 - types='hfs'
335 + if DISK_SIZE=$(diskutil info / 2>/dev/null | awk '/Disk Size/ {total += substr($5,2,length($5))} END { print total }') &&
336 + [ -n "$DISK_SIZE" ] && [ "$DISK_SIZE" != "0" ]; then
337 + DISK_DETECTION="diskutil"
338 + else
339 + types='hfs'
340
337 - if (lsvfs | grep -q apfs); then
338 - types="${types},apfs"
339 - fi
341 + if (lsvfs | grep -q apfs); then
342 + types="${types},apfs"
343 + fi
344
341 - if (lsvfs | grep -q ufs); then
342 - types="${types},ufs"
343 - fi
345 + if (lsvfs | grep -q ufs); then
346 + types="${types},ufs"
347 + fi
348
345 - DISK_DETECTION="df"
346 - DISK_SIZE=$(($(/bin/df -k -t ${types} | tail -n +2 | sed -E 's/\/dev\/disk([[:digit:]]*)s[[:digit:]]*/\/dev\/disk\1/g' | sort -k 1 | awk -F ' ' '{s=$NF;for(i=NF-1;i>=1;i--)s=s FS $i;print s}' | uniq -f 9 | awk '{print $8}' | tr '\n' '+' | rev | cut -f 2- -d '+' | rev) * 1024))
349 + DISK_DETECTION="df"
350 + DISK_SIZE=$(($(/bin/df -k -t ${types} | tail -n +2 | sed -E 's/\/dev\/disk([[:digit:]]*)s[[:digit:]]*/\/dev\/disk\1/g' | sort -k 1 | awk -F ' ' '{s=$NF;for(i=NF-1;i>=1;i--)s=s FS $i;print s}' | uniq -f 9 | awk '{print $8}' | tr '\n' '+' | rev | cut -f 2- -d '+' | rev) * 1024))
351 + fi
352 elif [ "${KERNEL_NAME}" = FreeBSD ]; then
353 types='ufs'
354