강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

리눅스 시스템의 2가지 크론에 대한 이해

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스 시스템의 2가지 크론에 대한 이해

 

 

 

 

우리가 흔히 말하는 리눅스의 크론(cron)에는 두가지가 있습니다.

 

 

 

 , 일반적으로 우리가 얘기하는 크론작업이라는 것은 시스템에서 주기적이고 반복적인 작업을 예약해 두고서 원하는 시간에 자동 실행하도록 설정하는 작업이라고 정의할 수 있습니다.

 

 

 

 물론 이 크론에 대한 정의는 필자의 자의적인 정의이므로 100% 공신력 있는 정의는 아닙니다.

 

 

 

 설명을 쉽게하기위한 크론에 대한 필자의 정의일 뿐입니다.

 

 

 

 여기서 필자가 얘기하고자 하는 것은 이러한 크론(cron)에는 2가지가 있다는 것입니다.

 

 

 

 

 

첫번째는 시스템크론이 그것이고, 두번째는 사용자크론이 그것입니다.

 

 

 

 물론 크론을 이렇게 2가지로 나눈 것 또한 설명의 편의를 위해서 필자가 의도적으로 나눈 것입니다.

 

 

 

 궁극적인 측면에서의 이 2가지는 같은 것입니다.

 

 

 

 하지만, 크론에 대해서 정확하게 이해하고 이를 우리가 원하는 방향으로 실무에 활용하는 것이 목적이기 때문에 필자는 크론을 이렇게 2가지로 나누어 보았습니다.

 

 

 

 

 

첫번째 시스템크론이라는 것은 시스템에 이미 설정되어 있는 크론으로서 시스템관리자가 그냥 사용만 하면 되는 것을 의미합니다.

 

 

 

 , 반복실행 할 주기와 실행시간 등이 이미 설정되어 있어서 우리는 이런 시스템크론을 사용하기만 하면 되는 것입니다.

 

 

 

 하지만, 거의 모든 시스템에서 이 시스템크론은 최고관리자(root)에게만 사용허용이 되어 있습니다.

 

 

 

 일반 사용자는 시스템크론을 사용하도록 허용되어 있지 않습니다.

 

 

 

 만약 일반사용자가 시스템크론에 특정작업을 등록해두고서 실행하고자 한다면 root의 허락이 있어야 하고, 설정 또한 위탁을 해야만 합니다.

 

 

 

 이런 시스템크론의 설정은 /etc/crontab파일에 그 설정이 되어 있습니다.

 

 

 

 

 

[root@su250 ~]# ls -l /etc/crontab

-rw-r--r-- 1 root root 255 2022-06-09 22:54 /etc/crontab

[root@su250 ~]#

[root@su250 ~]# cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

 

# run-parts

01 * * * * root run-parts /etc/cron.hourly

02 4 * * * root run-parts /etc/cron.daily

22 4 * * 0 root run-parts /etc/cron.weekly

42 4 1 * * root run-parts /etc/cron.monthly

[root@su250 ~]#

 

 

[root@RockyLinux01 etc]# cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

 

# For details see man 4 crontabs

 

# 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

 

[root@RockyLinux01 etc]#

 

 

이 파일에 대한 설명은 뒤에서 자세히 하게 됩니다.

 

 

 

 

 

두번째 사용자크론이라는 것은 최고관리자와 일반사용자들이 crontab명령어를 이용하여 개별적으로 설정할 수 있는 크론설정을 의미합니다.

 

 

 

 시스템크론이 root만 사용하는 것에 비해 사용자크론은 root사용자와 일반사용자들이 모두 사용 가능한 크론입니다.

 

 

 

 물론, 이런 사용자크론 설정을 허용할 사용자 또는 허용하지 않을 사용자를 별도로 지정하여 관리할 수 있습니다.

 

 

 

 뒤에서 자세히 설명합니다.

 

 

 

 그리고 이런 사용자크론은 각각의 사용자들이 crontab이라는 명령어를 이용하여 설정하며 설정내용은 /var/spool/cron디렉토리에 개별 사용자파일로 존재하게 됩니다.

 

 

 

 

 

[root@RockyLinux01 etc]# ls -l /var/spool/cron/

합계 4

-rw------- 1 root root 77  5 31 16:59 root

[root@RockyLinux01 etc]#

[root@RockyLinux01 etc]# cat /var/spool/cron/root

00 00 * * * su - root -c '/usr/bin/rdate -s time.bora.net && /sbin/clock -w'

[root@RockyLinux01 etc]#

 

 

 

 

현재는 이 디렉토리에 root파일 이외에는 존재하지 않습니다.

시스템 타임설정을 정확하게 하기 위하여 필자가 먼저 설정해둔 root 크론입니다.

 

 

 만약 bible이라는 일반사용자가 그 자신의 크론설정을 한다면 bible이라는 파일로 그 크론설정내용이 /var/spool/cron디렉토리에 생성될 것입니다.

 

 

 

 물론 sspark 사용자가 그 자신의 크론설정을 하면 이 디렉토리에 sspark이라는 크론설정파일이 생성될 것입니다.

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,041 명
  • 현재 강좌수 :  35,855 개
  • 현재 접속자 :  114 명