본문 바로가기
컴퓨터 공부/리눅스 자습서

Crontab을 이용해서 Nginx 접속 로그를 자동으로 받기

by 반짱코 2026. 4. 29.
728x90

저번에 작성했던 쉘스크립트는 필요할 때마다 수동적으로 실행시켜줘야 한다.

물론 이 방법은 조금 귀찮은 정도지만 보고서를 받듯 자동으로 실행되면 좋을 거 같다.

 

Crontab 기능을 사용해 봤다.

리눅스 유틸리티인데 반복작업을 자동화할 수 있는 기능을 가지고 있다.

 

 

 

1. 준비

실행할 파일의 경로, 결과 파일이 저장될 경로를 알아 둔다.

원하는 작동 시간을 정해둔다. ex) 0시가 되면 한번 실행

 

 

 

 

 

2. 작성

$sudo crontab -e

 

위 명령어를 실행하면 텍스트 편집기를 선택하는 창이 나온다.

권장하는 건 nano 지만 난 vim을 사용했다. (아무거나 써도 됨)

 

※ nginx 로그파일 실행에 권한 문제가 발생할 수 있기 때문에 앞에 꼭 sudo를 넣어줘야 한다.

 

 

 

 

 

 

편집기 제일 아래로 내려가서 아래 명령어를 작성해 준다.

0 0 * * * [로그파일 경로] >> [저장 파일 이름과 경로] 2>&1

 

1. 0 0 * * * 

원하는 시간을 설정할 수 있다. 앞에서부터 분(0-59), 시(0-23), 일(1-31), 월(1-12), 요일(0-7)이다.

매일 0시에 실행하길 원하기 때문에 0 0 * * * 으로 작성했다.

 

 

2. 경로 

/home/계정명/log/nginxlog.sh   스크립트 경로

>>   Append (로그 내용이 계속 쌓이길 원하기 때문)

/home/계정명/log/mylog.log   저장되는 로그파일

 

 

3. 에러메시지

2>&1

1은 정상 결과만 저장하는 mylog.log 일 때, &1은 mylog.log를 가리키는 목적지.

2는 에러 결과이다.

 

이 명령어는 에러 결과도 mylog.log에 같이 작성 이다.

 

 

 

 

3. 결과

 

작성한 명령어를 저장하면 이제 자동적으로 실행되는데, 다음 날 0시가 되어야 확인할 수 있다.

 

 

 

 

 

 

 


 

 

 

 

 

 

 

요약정리✨

1. 리눅스에서 반복작업 할 수 있는 유틸리티 Crontab

2. 권한 문제가 생길 수 있으므로 꼭 sudo를 사용하자.

3. 저장하고 나가면 끝

 

 

 

 

 

 

감사합니다.

728x90

댓글