디스크 크기 관리

디스크 크기 관리

저는 페도라 16을 사용하고 있습니다. 내 /dev/sda2는 /(루트)에 마운트되어 있으며 약 50G가 100% 채워져 있습니다.

[foampile@~ 13:13:39]> df
Filesystem     1K-blocks     Used Available Use% Mounted on
rootfs          51606140 49025452         0 100% /
devtmpfs         2988452        0   2988452   0% /dev
tmpfs            2999424       96   2999328   1% /dev/shm
/dev/sda2       51606140 49025452         0 100% /
tmpfs            2999424    51992   2947432   2% /run
tmpfs            2999424        0   2999424   0% /sys/fs/cgroup
tmpfs            2999424        0   2999424   0% /media
/dev/sda1          99150    79569     14461  85% /boot
/dev/sda5      247972844 10782056 224594412   5% /home

1분기: 디렉토리의 모든 파일을 재귀적으로 나열하고 크기의 내림차순으로 정렬할 수 있는 명령이나 ls 옵션이 있습니까? 어떤 파일/디렉토리가 장치를 차지하고 있는지 확인하고 싶습니다.

2분기: 나의 /home은 덜 사용됩니다. 디스크를 다시 파티션하고 일부 디스크 공간을 /dev/sda5(/home)에서 /dev/sda2로 전환하는 방법이 있습니까?

감사해요

답변1

50GB의 rootfs는거대한, 맹목적으로 확장하는 것보다 파일 시스템이 꽉 차는 이유를 확인하는 것이 좋습니다. 루트 파일 시스템만 확장하면 짧은 시간 내에 다시 채워질 가능성이 높습니다. /var, /var/log 또는 /tmp를 채우고 싶습니다.

내 경험에 따르면 이는 일반적으로 상대적으로 작은 파일이 많기 때문에 발생하므로 수동적이고 구조적인 방식으로 수행하는 것이 가장 좋습니다. 아래 방법을 사용하면 하나의 큰 파일이나 다수의 작은 파일이 포함된 디렉터리를 찾을 수 있습니다.

sudo -i
cd /
du -sxh * | sort -h
  • du디스크 사용량 나열

    • -h사람이 읽을 수 있는 형식의 인쇄 크기(예: 1K 234M 2G)
    • -s각 매개변수의 합계만 표시
    • -x다른 파일 시스템의 디렉터리를 건너뛰는 데 사용됩니다.
  • sort -h가장 큰 디렉터리가 마지막에 나타나도록 합니다.

이제 마지막 디렉터리를 조사합니다.

cd the_large_diretory

그리고 반복하다

du -sxh * | sort -h

대용량 파일이 포함된 디렉터리를 찾을 때까지. 마지막으로 다음을 사용하여 디렉토리의 내용을 확인할 수 있습니다.

cd the_large_directory
ls -hlrS
  • ls디렉토리의 내용 나열
    • -h"사람이 읽을 수 있는 형식"으로 파일 크기 표시
    • -l파일 세부정보 표시
    • -r역순으로 정렬(가장 큰 파일을 마지막에)
    • -S파일 크기별로 정렬

노트

  • 시스템의 명령 du이나 명령 중 하나라도 sort이 플래그를 지원하지 않으면 -h를 사용하세요 du -sxk * | sort -n. 출력은 비슷하지만 숫자가 너무 길어 읽기가 어렵습니다.
  • ls시스템이 이 플래그를 지원하지 않는 경우 -h건너뛰십시오. 필수는 아니지만 가독성이 향상됩니다.
  • ls시스템이 이 플래그를 지원하지 않으면 출력 -S을 다음으로 파이프하십시오.sort -nk5

답변2

Q1. 비슷한 것을 시도해 보세요 sudo du -a -m -x | sort -k1n -r | head -n40. -ato 플래그는 du재귀를 나타냅니다. 이 -m플래그는 크기를 MB 단위로 표시합니다. -x단일 파일 시스템에 유지됩니다 . 그러면 파일과 디렉터리가 나열되며 (옵션으로 인해 -n40) 가장 큰 40개만 나열됩니다 head. 일부 du구현에서는 -t SIZESIZE보다 큰 항목만 표시하도록 선택할 수 있습니다.

파일만 나열하려면 다음과 같이 시도할 수 있습니다 find / -xdev -type f -size +1M -ls. /동일한 파일 시스템에서 1MB보다 큰 파일 만 나열됩니다 .

Q2. 거의 확실합니다. 하지만 이 질문은 별도로 물어보거나 꽤 자주 논의되는 "linux" 및 "repartition"과 같은 키워드를 (여기 또는 다른 곳에서) 검색해야 합니다. 다음은 사이트의 이전 질문 중 일부입니다.

답변3

A1: ls -larS / | head -50

A2:예, 하지만 /home의 크기를 조정할 때는 주의하고 디스크 검사 및 백업을 강제로 실행하세요.

e2fsck -f /home

그 다음에

resize2fs /home 50G

관련 정보