리눅스 서버 용량이 자꾸 늘어 서버에 오류가 발생하는 경우가 생겼습니다. 이에 대한 해결 방법을 작성합니다.
먼저 `df -h` 리눅스 명령어를 이용해 파일 시스템 별 디스크 용량을 확인해봅니다.
```
Filesystem Size Used Avail Use% Mounted on
udev 971M 0 971M 0% /dev
tmpfs 199M 776K 198M 1% /run
/dev/xvda1 7.7G 7.6G 0.1G 99% /
tmpfs 993M 0 993M 0% /dev/
tmpfs 5.0M 0 5.0M 0% /run/
tmpfs 993M 0 993M 0% /sys/
/dev/loop0 18M 18M 0 100%
/dev/loop1 94M 94M 0 100% /snap/
/dev/loop2 94M 94M 0 100% /snap/
tmpfs 199M 0 199M 0% /run/
```
그 다음, root 위치에서부터 어떤 디렉토리에서 사용량이 많은지 확인해나갑니다. 현재 디렉토리에서 디스크 사용량 상위 10개를 확인해보는 명령어입니다.
```
du -hsx * | sort -rh | head -n 10
```
그 결과, 대부분이 로그 파일 용량이 문제임을 확인했습니다. 로그 파일의 경우 파일크기가 지속적으로 증가하기 때문에, 주기적으로 로그 파일 용량을 줄여주기로 했습니다. 리눅스 crontab 을 이용해 주기적으로 로그 파일 용량을 줄여주도록 합니다. 먼저, crontab으로 실행시킬 shell 파일을 생성합니다.
```
vi delete_log_file.sh
```
만든 파일에 다음과 같이 입력합니다.
```
#!/bin/bash
truncate --size 0 파일(ex. /home/ubuntu/project/log/error.log)
```
그리고 아래와 같이 명령어를 입력해 주기적으로 생성한 파일을 실행시킬 준비를 합니다.
```
crontab -e
```
열린 파일 안에 아래와 같이 입력합니다. 저의 경우 매 시간 45분마다(예를들면, 1시 45분, 2시 45분, 3시 45분...) 명령어를 실행시키려고 했을 때는 아래와 같이 입력합니다.
```
45 * * * * 수행할 명령어(ex. /home/ubuntu/delete_log_file.sh)
```
매일 오전 2시에 실행하고싶다고 하면 아래와 같이 사용할 수 있습니다.
```
0 2 * * * 수행할명령어
```
여러 경우가 있을 수 있는데 그런 경우는 crontab 사용법에 대해 조금 더 참고해보면 도움이 될 것입니다.
참고 : [https://raisonde.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%ED%81%AC%EB%A1%A0-%ED%83%ADcron-tab-%EC%B4%88%EA%B0%84%EB%8B%A8-%EC%84%A4%EB%AA%85](
댓글
댓글 쓰기