파일 시스템 사용량을 확인하고 공간을 정리하는 스크립트

파일 시스템 사용량을 확인하고 공간을 정리하는 스크립트

저는 쉘 스크립팅을 처음 사용합니다. 배포판이 다른 여러 Unix 시스템(RHEL, CENTOS, FEDORA, UBUNTU)을 가지고 있습니다. 아래의 파일 시스템 디스크 공간 사용 예를 스크립트에서 확인하도록 하는 방법이 있습니까?

Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  6.7G  2.3G  4.4G  34% /
devtmpfs                 361M     0  361M   0% /dev
tmpfs                    371M     0  371M   0% /dev/shm
tmpfs                    371M  5.1M  366M   2% /run
tmpfs                    371M     0  371M   0% /sys/fs/cgroup
/dev/sda1                497M  124M  374M  25% /boot
tmpfs                     75M     0   75M   0% /run/user/0

그리고 디스크 공간이 90% 이상인지 확인하고 공간을 비웁니다.

답변1

df -h사람이 읽을 수는 있지만 스크립팅에는 적합하지 않은 출력을 게시했습니다 .

5열보다는 4열(사용 가능)의 백분율에 더 주의를 기울이는 것이 좋습니다.

귀하의 스크립트는 "안전하게" 정리할 수 있는 고대 로그 파일을 알고 있는 것 같습니다. 지정된 정리 작업의 경우 파일 세트는 정확히 하나의 파일 시스템에 있습니다. df이 문제에 정말로 관심이 있다면 시스템 전체 출력을 구문 분석할 필요가 없습니다.

cd /var/log
df -k . | awk '{print $4}'

이는 사용자가 관심을 갖는 양, 즉 현재 디렉토리의 파일 시스템의 여유 공간을 정확하게 보여주는(사람이 읽을 수 있는 텍스트 접미사가 아닌) 킬로바이트 단위의 숫자 보고서를 제공합니다. 주위에 while 루프를 작성하고 루프를 통과할 때마다 하나의 파일(가장 오래된 파일)을 정리할 수 있습니다. 루프를 시작하기 전에 온전한지 확인하십시오. du -k필요할 때 "충분한" 공간을 확보할 수 있는지 확인하십시오. 집중해야 할 내용이 무엇인지 dir1/*알아보기 위해 무언가를 삭제하는 것은 재미가 없습니다.dir2/giant_file

관련 정보