다음과 같은 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