본문 바로가기

linux/centos

시간 확인 및 타임존 설정

crontab으로 작업을 반복적으로 실행시켜야 하는 이슈가 있었습니다. 좀 여유가 있는 22시에 수행하도록 설정했고 로그에는 22시에 실행된 것으로 나오는데 그 시간이 제가 생각하는 시간과 다르더라고요. 타임존이 달라서 발생하는 문제였습니다.

 

22시에는 잘 수행되었다고 로그가 남아있긴 한데 이 로그가 진짜 22시에 찍힌게 아니란 것을 알게 되었습니다. +_+

 

서버 시간 조회

서버 시간을 조회해봅니다.

date

시간이 UTC로 되어 있네요.

다르게 조회해봅니다.

ls -l /etc/localtime

localtime이 UTC로 되어 있군요!

좀 더 많은 내용을 확인해보기 위해서 아래 명령을 사용합니다.

timedatectl

UTC로 설정 되어 있군요! +0000 입니다.

원인을 알았으니 이제 타임존을 한국시간에 맞게 수정하면 될 것 같습니다.

호락호락하지 않군요.

정확한 타임존 이름을 찾아야겠습니다.

 

타임존 찾는 방법

우선 timedatectl을 잘 모르니 도움말을 봐야겠군요. (가장 먼저 봤어야 하는데 상황이 되지 않으면 잘 안 보게 됩니다.)

timedatectl -h 로 도움말을 확인해봅니다.

간단하고 명확해서 좋군요. 상태확인, 세팅, 목록 조회로 기능을 압축해볼 수 있습니다. 목록을 조회해 봅니다.

58 lines ㅋㅋㅋ 타임존이 많긴 하네요.

넘기면서 찾아볼 수도 있지만 grep을 걸어야겠습니다.

timedatectl list-timezones | grep Seoul
timedatectl list-timezones | grep -i seoul

대소문자에 유의하거나 grep에 -i 옵션을 줍니다.

"Asia/Seoul" 타임존을 찾았으니 앞서 실패한 타임존 설정을 다시 해봐야겠습니다.

 

타임존 설정

timedatectl set-timezone Asia/Seoul

아직도 적응이 잘 안되는 것은 명령이 성공하면 아무 답변이 없다는 것입니다!!

다시 시간을 조회해보니 시간이 잘 반영된 것 같습니다.

date, /etc/localtime, timedatectl 모두 잘 변경되었네요!

이제 원하는 시간에 crontab 스케줄이 동작하겠죠?!

 

저와 비슷한 문제를 겪으셨나요? 제가 겪은 다른 문제 및 해결 방법에 대한 내용도 도움이 되시면 좋겠습니다.

도움이 되셨다면 공감 및 댓글 부탁드려도 될까요?! 관심은 저를 행복하게 해 줍니다.