2019. 3. 6. 15:36
반응형

crontab을 이용해서 어떠한 명령을 주기마다 실행시킬 수 있다.

이때 각 실행에 대하여 로그를 남길 필요가 있다.


참고로 python3 /root/test.py 이 명령을 실행한다고 가정한다.



0 * * * * python3 /root/test.py > /root/test.log 2>&1


위와 같이 하면 매시 정각마다 실행이 되고 그때 로그가 test.log에 저장된다.

하지만 저렇게 하면 매번 실행될 때 test.log가 덮어쓰기된다.


그래서 각 실행별로 로그파일을 남기려고 한다.

그리고 파일명에 시간을 넣어주면 특정 시간대의 로그를 확인하기 쉽다.



다음과 같이 크론탭을 적어주면 된다.



0 * * * * python3 /root/test.py > /root/`date "+\%Y-\%m-\%d \%H:\%M:\%S"`.log 2>&1



이제 매시간마다 yy-mm-dd HH:MM:SS.log 와 같은 이름의 로그파일이 생성되는 것을 볼 수 있다.

참고로 실행하는데 걸리는 시간이 있어서 그런지 저장하는데 걸리는 시간이 있어서 그런지 초의 경우 00이 아니라 01로 표시되는 것을 볼 수 있다.

linux crontab의 경우 최소 분 단위로 설정할 수 있는 것으로 알고 있다.

그래서 초는 파일명에서 그냥 빼는 것이 좀더 나을 것 같다는 생각도 들었다.


참고로 테스트는 Ubuntu16에서 진행했다.

참고로 마지막에 2>&1은 왜 붙이는지 정확히 알지는 못하고 그냥 찾아보니까 붙여져있길래 붙였다.

반응형