"df"를 사용하여 여유 공간을 확보하고 이를 로그 파일에 출력하는 방법은 무엇입니까?

"df"를 사용하여 여유 공간을 확보하고 이를 로그 파일에 출력하는 방법은 무엇입니까?

명령을 사용하면 df다음과 같은 결과를 얻을 수 있습니다.

Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/root      197844228 15578648 180242500   8% /
devtmpfs         4101368        0   4101368   0% /dev
tmpfs             820648      292    820356   1% /run
tmpfs               5120        0      5120   0% /run/lock
tmpfs            1693720        4   1693716   1% /run/shm

내가 그냥 간직하고 싶다면180242500번호를 기록 /하고 파일에 저장합니다(예: disk-space-available.txt).

그것을 사용하면 df >> disk-space-available.txt모든 것이 저장되며 파일의 원시 숫자만 원합니다.

예를 들어, 다음과 같은 것이 있으면 작동하는 것입니다.

df -OUTPUT=raw-available-number
180242500

어떡해?

답변1

dfGNU coreutils 에서 :

$> df --output=avail /
Avail
12345
$> df --output=avail / | grep -v Avail
12345

답변2

간편한 필터링을 사용하여 awk마지막 필드가 동일한지 확인한 /후 해당 4th필드를 인쇄할 수 있습니다.

df | awk '$NF == "/" { print $4 }' >> output

또는:

df / | awk 'NR == 2 { print $4 }' >> output

답변3

"df"의 GNU 버전이 없으면 "stat"를 사용하여 사용 가능한 블록의 수와 크기를 얻을 수 있습니다.

stat --file-system --format="%f %S" /

그런 다음 이를 곱하여 사용 가능한 바이트를 얻을 수 있습니다.

(stat=$(stat --file-system --format="%f %S" /) && echo $(( ${stat/ /*} )))

사람이 읽을 수 있는 형식으로 변환하도록 선택할 수 있습니다 numfmt --to=iec.

관련 정보