当通过 cron 运行 时,df 在 FreeBSD 上显示实际大小的两倍
df shows double the actual size on FreeBSD when run via cron
我写了一个 bash 从服务器收集数据的脚本
并将其发送到一个日志文件,该文件由一个
splunkforwarder。服务器 运行s FreeBSD 并且有一个 ZPool
通过 Samba 共享。所以当然是我想要的一件事
splunk 关注的是在所述共享上使用了多少 space。
为了保持可读性,我从我的脚本中提取了实现此目的的行:
#!/usr/bin/env bash
while read disk used avail ; do
# In reality I pass these values to a function
# that adds some formatting, but let's keep it
# simple for the moment
echo $disk " " $used " " $avail
done < <(df | awk '/datapool\// {print , , }')
当我从命令行 运行 这些行时,我得到了正确的
数字(我将输出与 zfs list
进行了比较)。
但是当我通过 cron 运行 这个脚本时,我得到的数字都是
加倍。
让我们看看我机器上的确切输出:
# Manually
datapool/myshare 4842023944 24758292883
# Via cron
datapool/myshare 9684047889 49516585766
这只发生在 FreeBSD 上。我有另一个 ZFS 存储服务器
运行s 在 Debian 上,当我 运行 那里有完全相同的脚本时,
我总是得到正确的数字。
我已经尝试 运行以不同的用户身份执行 cron 作业
(包括根),但它总是相同的结果。我也有
将 PATH 环境变量设置为与我相同的值
当我 运行 这个脚本手动(而不是缩短
cron 通常使用的版本)。
我完全不知道这个问题的原因
而且我真的不知道如何调试这个问题。加上我
甚至在互联网上找不到任何信息
与此问题远程相关。
我真的希望你能帮我解决这个问题,任何提示都是
非常感谢:)
我写了一个 bash 从服务器收集数据的脚本 并将其发送到一个日志文件,该文件由一个 splunkforwarder。服务器 运行s FreeBSD 并且有一个 ZPool 通过 Samba 共享。所以当然是我想要的一件事 splunk 关注的是在所述共享上使用了多少 space。
为了保持可读性,我从我的脚本中提取了实现此目的的行:
#!/usr/bin/env bash
while read disk used avail ; do
# In reality I pass these values to a function
# that adds some formatting, but let's keep it
# simple for the moment
echo $disk " " $used " " $avail
done < <(df | awk '/datapool\// {print , , }')
当我从命令行 运行 这些行时,我得到了正确的
数字(我将输出与 zfs list
进行了比较)。
但是当我通过 cron 运行 这个脚本时,我得到的数字都是
加倍。
让我们看看我机器上的确切输出:
# Manually
datapool/myshare 4842023944 24758292883
# Via cron
datapool/myshare 9684047889 49516585766
这只发生在 FreeBSD 上。我有另一个 ZFS 存储服务器 运行s 在 Debian 上,当我 运行 那里有完全相同的脚本时, 我总是得到正确的数字。
我已经尝试 运行以不同的用户身份执行 cron 作业 (包括根),但它总是相同的结果。我也有 将 PATH 环境变量设置为与我相同的值 当我 运行 这个脚本手动(而不是缩短 cron 通常使用的版本)。
我完全不知道这个问题的原因 而且我真的不知道如何调试这个问题。加上我 甚至在互联网上找不到任何信息 与此问题远程相关。
我真的希望你能帮我解决这个问题,任何提示都是 非常感谢:)