
저는 Linux 서버를 실행하고 있으며 이 서버를 삼바 공유 드라이브로 사용하고 있습니다. 어제부터 갑자기 공유 드라이브 크기 중 하나가 증가하고 있습니다(10분마다 ~ 100MB). 이 공유 드라이브에는 폴더가 너무 많고 하위 폴더도 있습니다. 이제 공유 드라이브에 공간이 부족합니다.
어떤 폴더가 점점 늘어나고 있는지 어떻게 찾을 수 있는지 도와주세요. 공유 드라이브의 하위 디렉터리 크기를 얻으려면 아래 명령을 시도했습니다. 하지만 출력을 비교해야 하며 운이 좋지 않은지 확인하는 데 시간이 너무 오래 걸립니다.
du -sh --maxdepth=1
제게 제안해주실 수 있나요? 이 파일 시스템에서 데이터 트랜잭션을 찾을 수 있는 다른 방법이 있나요?
답변1
아래 명령을 사용하여 최근 수정된 파일을 찾아보세요. FOLDER 내에서 지난 10분 동안 수정된 파일이 표시됩니다. FOLDER가 시간에 따라 어떻게 수정되었는지 보려면 -mmin -10 매개변수를 늘리십시오. 보다남자 찾기그리고 찾아보세요-m시간그리고-mmin자세한 내용은 다음을 참조하세요.
sudo find FOLDER -xdev -type f -mmin -10 -ls
또 다른 상황은 삭제된 파일이 여전히 해당 파일을 사용하는 프로세스로 인해 복구되지 않는 디스크 공간을 차지하고 있는 경우입니다. 이 경우 삭제된 파일을 사용하는 프로세스를 파악하고 복구할 공간에 대해 완료합니다.
sudo lsof | grep deleted
작은 파일이 많으면 큰 파일보다 많은 공간을 차지할 수 있으므로 크기를 찾는 것은 여기서 도움이 되지 않습니다. inode 번호도 확인하세요. 또한 FOLDER 내부의 모든 폴더 크기를 얻으려면 다음을 수행하십시오.
sudo find FOLDER -xdev -type d | xargs -I DIR du -sm DIR | sort -nk1
답변2
iotop
프로세스별 I/O 사용량(즉, 어떤 상위 프로세스가 디스크를 사용하고 있는지)을 보여주는 도구를 사용하여 어떤 프로세스가 공간을 차지하고 있는지 추적할 수 있습니다 . 또 다른 방법은 디렉터리 변경 사항을 모니터링할 수 있는 inotify
(의 일부 )를 사용하는 것입니다 .inotify-tools
또는 간단한 방법은 du
다음과 같은 방법으로 사용하는 것입니다.
다음 별칭을 정의합니다.
alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'
그런 다음 의심스러운 폴더로 이동하여 실행하여 big
현재 디렉터리에서 가장 큰 파일과 디렉터리를 표시합니다. 또는 big-files
현재 폴더에서 가장 큰 파일을 반복적으로 보려면 실행하세요.
참고: OSX/BSD에서 제대로 작동하려면(이
sort
없음 ) 에서-h
설치 하거나 제거하고 대신 사용하십시오 .sort
coreutils
-h
ls
sort -nr
답변3
나는 일반적 ncdu
으로 디스크 공간 사용량을 탐색하는 데 사용합니다. 점점 더 커지는 폴더가 시스템을 차단하지 않거나 ncdu 스캔을 차단하지 않으면 어떤 폴더가 비정상적으로 크게 보이는지 확인할 수 있습니다.