/var에 최소한 XG 여유 공간이 있는지 확인하는 방법

/var에 최소한 XG 여유 공간이 있는지 확인하는 방법

다음과 같은 df -h 출력이 있습니다.

[root@trump var]# df -h | grep "/var"

/dev/mapper/vg-lvm_var   101G   85G   17G  84% /var

bash/awk/perl의 /var에 최소 10G의 여유 공간이 있는지 확인하는 방법

동시에 나는 다음 구문을 작성했습니다.

[[ ` df -h | grep "/var" | awk '{print $4}' | sed s'/G//g' ` -lt 10 ]] && echo "/var need at least 10G"

하지만 이 구문은 우아하지도 추하지도 않습니다. 몇 가지 규칙을 놓쳤을 수도 있습니다.

답변1

충분히 새로운 GNU를 사용하면 df이 옵션을 사용하여 여유 공간만 추출할 수 있습니다 --output. 나머지는 awk와 비교할 수 있습니다.

$ df -k --output=avail /var | awk 'NR == 2 && ($1 < 10*2**20) {print "/var need at least 10G"}'
/var need at least 10G

df /var이것이 없더라도 특정 파일 시스템을 얻으려는 경우 ( df | grep /var아무것도 마운트되지 않은 상황을 캡처하려는 경우가 아니면 ) 이렇게 하는 것이 더 좋습니다 /var.

bash를 사용하여 이를 기반으로 다른 명령을 실행하려면 (( ))산술 컨텍스트를 사용하십시오.

if (( $(df -k --output=avail /var | tail -1) < 10*2**20 ))
then
    log "/var need at least 10G"
fi 

관련 정보