내 컴퓨터에는 15개의 SATA 하드 드라이브가 연결되어 있고 이를 하나씩 살펴보고 여유 공간을 기록한 다음 모든 것을 합산하는 것은 이상적이지 않습니다.
이를 수행할 수 있는 명령이나 명령 조합이 있습니까? 이상적으로는 /dev/sd*
nvme 드라이브를 포함하고 싶지 않기 때문에 다음과 같은 것을 전달할 수 있습니다 .
답변1
편집: 매뉴얼 페이지를 더 자주 읽어야 합니다. 그것은 다음과 같이 간단합니다
df --total -h /dev/sd*
알았어 뭔가 알아냈어
df --output=avail /dev/sd* | tail -n +2 | datamash sum 1
이것이 기본적으로 수행하는 작업은 마운트된 디스크를 나열하고 사용 가능한 공간만 출력으로 표시한 다음 tail을 사용하여 열 제목인 첫 번째 줄을 제거한 Avail
다음 마지막으로 datamash로 숫자를 합산하는 것입니다.
답변2
df
와 같은 가상 RAM 디스크 항목을 제외하려면 다음 명령을 염두에 두고 다음 매개변수를 /dev
사용하십시오 -x
.
df -x tmpfs -x devtmpfs --total -h
이를 수행하는 또 다른 방법은 lsblk
명령을 사용하는 것입니다.
-l
목록 형식으로 출력-n
헤더라인을 건너뛰세요-b
바이트 단위로 인쇄-o
지정된 열을 출력합니다.FSAVAIL
인쇄 파일 시스템 크기 사용 가능/무료
lsblk -l -n -b -o FSAVAIL | grep -v ^$ | \
awk '{sum+=$1} END{print sum}' | numfmt --to=iec
grep
빈 줄을 제외하고, awk
첫 번째 열을 합산하고, 마지막으로 numfmt
바이트를 "사람이 읽을 수 있는" 형식으로 변환하는 데 사용합니다 .