Есть ли причина, по которой я получаю сообщение об ошибке "На устройстве не осталось места" mkdir
. Я подтвердил, что у меня осталось достаточно места. около 68% бесплатно. а также у меня израсходовано 1% iNodes. Это CentOS 7 с отключенным SELinux.
Ниже приводится из 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 запускает сборку, которая устанавливает более новую версию ruby через rbenv и ruby-build.
возможно, в системе включена квота. Проверить с
repquota -as
или
cat /etc/fstab | grep quota
(не проверял, возвращает ли mkdir Нет места в случае квоты)
Чтобы проверить свободное место как Дженкинс Джоб:
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