작업 관리¶
이 문서에서는 예약된 작업을 관리하는 방법에 대해 알아보겠습니다.
목표: 이 문서에서는 미래의 Linux 관리자가 다음을 수행하는 방법을 배웁니다:
Linux는 작업 스케줄링 처리하는 방법
cron을 특정 사용자에게 제한하는 방법 작업 예약하기
crontab, crond, scheduling, linux
지식:
복잡성:
소요 시간: 15분
개요¶
작업 스케줄링은 cron 유틸리티를 사용하여 관리됩니다. 이를 통해 주기적으로 작업을 실행할 수 있습니다.
시스템 작업을 위해서는 관리자만 사용할 수 있지만 일반 사용자는 액세스 가능한 작업 또는 스크립트에 대해 사용할 수 있습니다. cron 유틸리티에 액세스하려면 crontab을 사용합니다.
cron 서비스는 다음 용도로 사용됩니다:
- 반복적인 관리 작업;
- 백업;
- 시스템 활동 모니터링;
- 프로그램 실행.
crontab은 cron table의 줄임말이지만 작업 예약 테이블로 생각할 수 있습니다.
주의
일정을 설정하려면 시스템에 정확한 시간이 설정되어 있어야 합니다.
서비스 작동 방식¶
cron 서비스는 메모리에 존재하는 crond 데몬에 의해 실행됩니다.
상태를 확인하려면 다음을 사용합니다:
[root] # systemctl status crond
팁
crond 데몬이 실행되지 않으면 수동으로 초기화하거나 자동으로 시작해야 합니다. 예약된 작업이 있더라도 실행되지 않을 것입니다.
수동으로 crond 데몬 초기화하는 방법:
[root]# systemctl {status|start|restart|stop} crond
시작 시 crond 데몬 초기화하는 방법:
[root]# systemctl enable crond
보안¶
일정을 구현하려면 사용자에게 cron 서비스를 사용할 수 있는 권한이 있어야 합니다.
이 권한은 아래 파일에 포함된 정보에 따라 다릅니다.
/etc/cron.allow/etc/cron.deny
주의
파일이 없으면 모든 사용자가 cron을 사용할 수 있습니다.
cron.allow 및 cron.deny 파일¶
파일 /etc/cron.allow
이 파일에 포함된 사용자만 cron을 사용할 수 있습니다.
존재하고 비어 있으면 어떤 사용자도 cron을 사용할 수 없습니다.
주의
cron.allow가 있는 경우 cron.deny는 무시됩니다.
파일 /etc/cron.deny
이 파일의 사용자는 cron을 사용할 수 없습니다.
비어 있으면 모든 사용자가 cron을 사용할 수 있습니다.
기본적으로 /etc/cron.deny는 존재하고 비어 있으며 /etc/cron.allow 파일이 존재하지 않습니다.
사용자 허용¶
user1만 cron을 사용할 수 있게 설정합니다.
[root]# vi /etc/cron.allow
user1
사용자 금지¶
user2만 cron을 사용할 수 없습니다.
[root]# vi /etc/cron.down
user2
cron.allow 파일이 존재하지 않아야 합니다.
작업 예약¶
사용자가 작업을 예약하면 자신의 이름으로 파일이 /var/spool/cron/ 아래에 생성됩니다.
이 파일에는 이 사용자가 만든 모든 작업에 대한 crond가 알아야 할 모든 정보, 실행할 명령 또는 프로그램, 실행할 시간(시간, 분, 날짜...)이 포함됩니다.

crontab 명령¶
crontab 명령은 예약 파일을 관리하는 데 사용됩니다.
crontab [-u user] [-e | -l | -r]
예시:
[root]# crontab -u user1 -e
| 옵션 | 설명 |
|---|---|
-e |
vi로 일정 파일 편집 |
-l |
일정 파일의 내용을 표시 |
-u |
일정 파일을 조작할 사용자의 이름 설정 |
-r |
일정 파일 삭제 |
주의
옵션이 없는 crontab은 이전 예약 파일을 삭제하고 사용자가 새 줄을 입력할 때까지 기다립니다. 이 편집 모드를 종료하려면 ctrl + d