有什么原因会让我收到“设备上没有剩余空间”的错误mkdir
。我已经确认我有足够的剩余空间。大约 68% 是免费的。而且我已经消耗了 1% 的 iNode。这是禁用 SELinux 的 CentOS 7。
以下是df -h
:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/xvda1 33540488 10571368 22969120 32% /
devtmpfs 3731924 0 3731924 0% /dev
tmpfs 3616424 0 3616424 0% /dev/shm
tmpfs 3616424 254592 3361832 8% /run
tmpfs 3616424 0 3616424 0% /sys/fs/cgroup
tmpfs 2097152 2880 2094272 1% /tmp
和df -i
:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/xvda1 33550720 251008 33299712 1% /
devtmpfs 932981 296 932685 1% /dev
tmpfs 904106 1 904105 1% /dev/shm
tmpfs 904106 426 903680 1% /run
tmpfs 904106 13 904093 1% /sys/fs/cgroup
tmpfs 904106 14 904092 1% /tmp
还有什么可能导致这种情况?
编辑 尽管当 Jenkins 运行构建时似乎会出现这种情况,该构建将通过 rbenv 和 ruby-build 安装较新版本的 ruby。
答案1
系统可能启用了配额。检查
repquota -as
或者
cat /etc/fstab | grep quota
(未检查 mkdir 是否在配额的情况下返回没有剩余空间)
答案2
要检查可用空间詹金斯作业:
参数
FREE_SPACE
:需要自由空间英国。
工作
#!/usr/bin/env bash
free_space="$(df -Ph . | awk 'NR==2 {print $4}')"
if [[ "${free_space}" = *G* ]]; then
free_space_gb=${x/[^0-9]*/}
if [[ ${free_space_gb} -lt ${FREE_SPACE} ]]; then
echo "Warning! Low space: ${free_space}"
exit 2
fi
else
echo "Warning! Unknown: ${free_space}"
exit 1
fi
echo "Free space: ${free_space}"
插件
设置构建描述
构建后操作
- 正则表达式:
Free space: (.*)
描述:
Free space: \1
构建失败的正则表达式:
Warning! (.*)
- 构建失败的描述:
\1