summaryrefslogtreecommitdiffstats
path: root/daemon
diff options
context:
space:
mode:
authorIlya Mashchenko <ilya@netdata.cloud>2022-04-27 10:49:35 +0300
committerGitHub <noreply@github.com>2022-04-27 10:49:35 +0300
commite408ed4bf719f720211bbf4aee3098b3291b652a (patch)
treeded989e6a5c45817d4c87038622bd8fa34215690 /daemon
parent005d060bebf855ea0e22a09896d85976477b1826 (diff)
fix: use 'diskutil info` to calculate the disk size on macOS (#12764)
Diffstat (limited to 'daemon')
-rwxr-xr-xdaemon/system-info.sh23
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'