diff options
author | Ilya Mashchenko <ilya@netdata.cloud> | 2022-04-27 10:49:35 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-27 10:49:35 +0300 |
commit | e408ed4bf719f720211bbf4aee3098b3291b652a (patch) | |
tree | ded989e6a5c45817d4c87038622bd8fa34215690 /daemon | |
parent | 005d060bebf855ea0e22a09896d85976477b1826 (diff) |
fix: use 'diskutil info` to calculate the disk size on macOS (#12764)
Diffstat (limited to 'daemon')
-rwxr-xr-x | daemon/system-info.sh | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/daemon/system-info.sh b/daemon/system-info.sh index 7fb2f25b5d..56517d0d7c 100755 --- a/daemon/system-info.sh +++ b/daemon/system-info.sh @@ -332,18 +332,23 @@ DISK_SIZE="unknown" DISK_DETECTION="none" if [ "${KERNEL_NAME}" = "Darwin" ]; then - types='hfs' + if DISK_SIZE=$(diskutil info / 2>/dev/null | awk '/Disk Size/ {total += substr($5,2,length($5))} END { print total }') && + [ -n "$DISK_SIZE" ] && [ "$DISK_SIZE" != "0" ]; then + DISK_DETECTION="diskutil" + else + types='hfs' - if (lsvfs | grep -q apfs); then - types="${types},apfs" - fi + if (lsvfs | grep -q apfs); then + types="${types},apfs" + fi - if (lsvfs | grep -q ufs); then - types="${types},ufs" - fi + if (lsvfs | grep -q ufs); then + types="${types},ufs" + fi - DISK_DETECTION="df" - 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)) + DISK_DETECTION="df" + 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)) + fi elif [ "${KERNEL_NAME}" = FreeBSD ]; then types='ufs' |