드라이브 이름 없이 드라이브 공간 세부 정보를 얻을 수 있는 방법이 있습니까? 예를 들어, 출력
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 20G 15G 4.2G 78% /
/dev/sda6 68G 39G 26G 61% /u01
/dev/sda2 30G 5.8G 22G 21% /opt
/dev/sda1 99M 19M 76M 20% /boot
tmpfs 48G 8.2G 39G 18% /dev/shm
/dev/mapper/vg3-KPGBKUP4
10T 7.6T 2.5T 76% /KPGBKUP4
내가 원하는 출력은 다음과 같습니다.
20G 15G 4.2G 78%
68G 39G 26G 61%
30G 5.8G 22G 21%
99M 19M 76M 20%
48G 8.2G 39G 18%
10T 7.6T 2.5T 76%
내가 이것을 원하는 이유는 무엇입니까? 서버가 여러 대 있어서 매일 보고서를 작성해야 합니다. 그러면 내 작업량이 10분의 1로 줄어들 것입니다. 어떤 제안이라도 높이 평가하겠습니다.
답변1
GNU coreutils 8.21부터 시작(변경 로그), 옵션이 df
있습니다 --output
. sed
헤더 자르기 의 경우 :
df -h --output=size,used,avail,pcent | sed 1d
답변2
파일 시스템과 마운트 지점에 공백 문자가 포함되어 있지 않다고 가정하고 다음을 시도해 보십시오.
df -hP | awk 'NR>1 { $1=$6="" ; print }' | column -t
df -hP
긴 파일 시스템 이름에 대해 줄 바꿈 없이 파일 시스템 통계를 나열합니다.
awk 'NR>1 { ... }'
df
헤더 행을 건너뛰려면 주어진 작업을 두 번째 행 이하로 제한하세요 ...
-action은 불필요한 필드를 awk
0 { $1=$6="" ; print }
으로 만들고 나머지 필드를 인쇄합니다.
를 사용하면 { print $2,$3,$4,$5 }
동일한 작업이 수행됩니다.
column -t
전체 출력을 깨끗한 테이블에 정리합니다.
$ cat x
#!/bin/sh
echo '<testing inside a script>'
df -hP | awk 'NR>1 { $1=$6="" ; print }' | column -t
echo '</testing inside a script>'
$ chmod +x x
$ ./x
<testing inside a script>
71G 39G 29G 58%
1006M 0 1006M 0%
10M 208K 9,8M 3%
1006M 0 1006M 0%
</testing inside a script>
$ _
(댓글에 언급된 문제가 해결되면 다시 삭제하겠습니다...)
답변3
findmnt -Do SIZE,USED,AVAIL,USE%
이것은 내 결과입니다.
SIZE USED AVAIL USE%
11.8G 0 11.8G 0%
11.8G 63.1M 11.7G 1%
11.8G 920K 11.8G 0%
11.8G 0 11.8G 0%
12G 8.9G 2.7G 74%
11.8G 410.6M 11.4G 3%
3G 584.4M 2.4G 19%
3G 584.4M 2.4G 19%
2.4G 4K 2.4G 0%
0 0 0 -
그러니 아직 사용하지 않으셨다면findmnt
보고서의 경우 아마도 이렇게 해야 합니다. 이보다 더 구체적인 정보를 얻을 수 있습니다. 하지만 위의 예에서는 제가 지정했습니다.-Do
도착하다모방 df
(옵션에 설명된 대로)출력 열을 제한합니다. 도착하다열 헤더를 제거하고 추가하기만 하면 됩니다.-n
.문자열 구문 분석이 필요하지 않습니다.출력은 원자적입니다.
하지만 내 말을 그대로 받아들이지는 마세요.
man mount
...더 강력하고 정의 가능한 출력 사용을 위해
findmnt(8)
, 특히 스크립트에서 ...
답변4
이 시도:
$ df -h | awk 'NR==1{next}{for(i=2;i<NF;i++){printf("%s\t",$i)};print""}'
92G 5.2G 82G 6%
2.9G 4.0K 2.9G 1%
1.2G 932K 1.2G 1%
5.0M 0 5.0M 0%
2.9G 700K 2.9G 1%
360G 53G 289G 16%