드라이브 이름 없이 공간 세부정보 가져오기

드라이브 이름 없이 공간 세부정보 가져오기

드라이브 이름 없이 드라이브 공간 세부 정보를 얻을 수 있는 방법이 있습니까? 예를 들어, 출력

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은 불필요한 필드를 awk0 { $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% 

관련 정보