오늘은 GitHub Action을 사용해 파이썬 파일을 실행하기 위해 열심히 세팅해주는 작업을 했다. 이상하게도 자꾸만 쉘 스크립트 관련 문제가 떠서 오류와의 전쟁을 하는 와중에 쉬어가는 코너로 cron 표현식이라는 걸 정리해보겠다.
🤔 cron 표현식이란?
크론 표현식이란 날짜와 시간을 나타내는 표현문이다. 주로 일정한 시간마다, 혹은 특정 간격마다 정해진 일을 수행할 때에 사용되며 난 이번에 깃허브 액션으로 매일 정해진 시간에 파이썬 파일을 실행하기 위해 크론 표현식을 사용했다.
![cron expressions (크론 표현식) 초간단 정리 cron 표현식 예시 cron 표현식 예시](https://rimu.work/wp-content/uploads/2023/05/cron-표현식-예시-1024x768.webp)
깃허브 액션을 위한 yml 파일이다. 표시된 부분이 보이는가? on 부분에 schedule을 추가해주면 정해진 시간마다 파이썬 파일을 실행하게 세팅하는 것이다. 이때 cron 표현식을 사용하면 간편하게 날짜와 시간을 정해줄 수 있다.
🧑💻 cron 표현식의 문법
크론 표현식은 총 다섯개의 파트로 이뤄진다. * * * * * 가 기본 베이스이며 여기에서 필요한 영역에 원하는 숫자를 채워주면 된다. 각 파트의 역할은 이렇다👇
* * * * * | | | | | | | | | +---- 요일 (0 - 7) (0과 7은 일요일) | | | +------ 월 (1 - 12) | | +-------- 일 (1 - 31) | +---------- 시간 (0 - 23) +------------ 분 (0 - 59)
이렇게 크론 표현식을 사용하면 월, 일, 요일, 시간, 분 단위 까지 액션을 수행할 시각을 정해줄 수 있다.
🧑💻 사용 예시
예를 들어 보자. 게시글 위에서 남긴 스크린샷의 사례를 분석해보면 이렇다.
0 15 * * * | | | | | | | | | +---------- 15시 +------------ 0분
15시 0분이 될 때마다 액션을 실행하도록 의도한 표현식이다. 일, 월, 요일 부분은 전부 * 로 비워두었으므로 일, 월, 요일은 고려하지 않는다는 걸 의미한다. 이 경우 “매일 15시 0분마다 수행” 이라고 해석할 수 있다.
만약 “매 달 수요일마다 9시에 실행” 으로 세팅하고 싶다면, 이렇게 할 것이다.👇
0 9 * * 3
🤔 .yml 파일에서 스케줄을 뺀다면?
만약 .yml 파일에서 스케줄 부분을 삭제한다면, 정해둔 시각마다 수행하는 것이 아니라 당신이 “push” 명령어를 실행할 때마다 파이썬 파일을 실행하게 된다.
![cron expressions (크론 표현식) 초간단 정리 yml 파일에서 스케줄 삭제한 모습 yml 파일에서 스케줄 삭제한 모습](https://rimu.work/wp-content/uploads/2023/05/yml-파일에서-스케줄-삭제한-모습-1024x581.webp)
이렇게 비워 두면 당신이 push 명령어를 실행할 때마다 액션을 수행하게 된다. 브랜치명을 정확하게 적어주는 것도 잊지 말자! 참고로 push 명령어는:
git push origin 브랜치명
![cron expressions (크론 표현식) 초간단 정리 워크플로우에 액션이 추가된 모습 워크플로우에 액션이 추가된 모습](https://rimu.work/wp-content/uploads/2023/05/워크플로우에-액션이-추가된-모습-1024x733.webp)
짠~ 이렇게 깃헙 워크플로우에 액션이 추가된 것을 볼 수 있다. 저 노랑색 동그라미가 돌면서 로딩되다가 초록색으로 바뀌어야 정상… 인데 난 이 단계에서 자꾸 빨간색 ❌표시 로 변하면서 127 에러가 뜬다ㅠ 아마 쉘 스크립트 파일 관련 문제인 것 같아서 이것저것 시도해보고 있다. 문제가 해결되면 이 내용도 업로드할 예정!
🍀함께 보면 도움되는 글🍀 파이썬 모듈 import 실패할 때 해결 방법 git push 안되는 문제 해결하기 (Pycharm, GitHub) 파이참 터미널 실행 방법 (메뉴 위치, 단축키)
글 더보기
아뿔싸! AWS 비용이 청구되었습니다(EC2 인스턴스 해지/삭제하기)
CSS 클래스 이름에 공백이 있을 때 이렇게 하세요
g++ 컴파일을 위한 mingw-w64 패키지 설치하기
파이썬 f-string 오류 해결하기 ‘f-string: empty expression not allowed’
파이썬 모듈 import 실패할 때 간단한 해결 방법
git push 안되는 문제 드디어 해결!