cron

taeskim·2021년 6월 18일
1

born2beroot

목록 보기
1/1
post-custom-banner

0. 전체 흐름

  1. 전원
  2. init 데몬
  3. crond 실행
  4. var/spool/cron
  5. crontab 파일읽기(cron.hourly, cron.daily, cron.weekly, cron.monthy)
  6. var/log/cron

1. cron은 왜 사용해?

  • 주어진 일정에 따라 특정 셀 명령어들을 실행해야 할때 사용한다.
  • 예를 들어, 주기적으로 backup을 한다거나, 서버에서 특정 데이터를 받아온다거나..
  • 단순 반복적인 작업은 컴퓨터에게 시키고 싶어..

2. 그럼 cron은 무엇인가?

  • 왜 사용하는지에 대한 이유가 cron이 무엇인가를 잘 설명한다.
  • 유닉스 계열 컴퓨터 운영체제의 시간 기반 잡 스케줄러이다. 소프트웨어 환경을 설정하고 관리하는 사람들은 작업을 고정된 시간, 날짜 간격에 주기적으로 실행할 수 있도록 스케줄링하기 위해 cron을 사용한다.(https://ko.wikipedia.org/wiki/Cron)

3. 어떻게 동작하는가?

  • ps -ef | grep crond
    - 데몬형태로 background에서 동작하는 것을 확인할 수 있다.
  • cat /etc/rc#.d
    - crond 시작 directory
  • crontab은 crond에게 사용자가 구동하고자하는 것언제 구동하고 싶은지를 알려준다.

3. 어떻게 사용하는가?

  • find /etc - name crontab
    - 어디에 있는가?
  • cat /etc/crontab
    - 어떻게 사용하는가?
  • cron은 셸 명령어들이 주어진 일정에 주기적으로 실행하도록 규정해놓은 crontab (cron table) 파일에 의해 구동된다.
  • 맥의 경우 /var/spool/cron/crontab에 위치해 있다.
  • 사용자를 위한 구성파일은 crontab -e를 호출해서 편집할 수 있다.
  • 사용법(cat /etc/crontab)
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
  • /user/sbin/anacron
    - cron과 같이 동작하는 프로그램으로 서버가 일정 시간 중지되었을 때에도 작업이 실행되는 것을 보장하기 위해 사용하는 도구

  • 각 필드 세부사항
    - * : 해당 필드의 모든 값 ex) 매일, 매월 ...

    • '-': 그 사이의 모든 값 ex) 1-5, 1일 ~ 5일
    • , : 지정 값 ex) 1,3,5 1시,3시,5시
    • / : 특정 주기로 나눌 때 사용
  • 옵션

  • /etc/cron.daily, /etc/cron.weekly /etc/cron.monthy
    - 시스템크론설정 디렉터리로 cron은 실행할 내용을 시스템크론설정디렉터리에 넣어 놓고 작동.

  • /var/log/cron
    - 실행 내용 기록 로그 볼 수 있음

  • /etc/cron.allow, etc/cron.deny
    - 접근 허용 도는 금지를 할 수가 있다.

4. 멈추기

  • 멈추기 /etc/init.d/cron stop
  • 시작 /etc/init.d/cron start
  • reboot 후에도 멈추게 하려면 아래의 명령도 추가
    - sudo systemctl disable cron

5. 문제

https://docs.google.com/presentation/d/1fjxmm06BFQHJVbMRlxuOdQwNyp1wh_bLo6l6xdwXa6c/edit#slide=id.ge1955242cc_0_78

6. references

profile
Humble and Honest
post-custom-banner

0개의 댓글