크론탭을 이용한 리눅스 서버 용량 줄이기(How to solve linux server disk problem by using crontab)



리눅스 서버 용량이 자꾸 늘어 서버에 오류가 발생하는 경우가 생겼습니다. 이에 대한 해결 방법을 작성합니다.

먼저 `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](


댓글

이 블로그의 인기 게시물

부트스트랩 사용 시 버튼 오른쪽 정렬하는 방법 (How to use float-right for right align in bootstrap)

맥(Mac)에서 MySql 사용 시 Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 오류가 발생하는 경우 해결 방법

HTML, CSS - footer fixed (foot 하단 고정 시키기)