콘텐츠로 이동

작업 관리

이 문서에서는 예약된 작업을 관리하는 방법에 대해 알아보겠습니다.


목표: 이 문서에서는 미래의 Linux 관리자가 다음을 수행하는 방법을 배웁니다:

✔ Linux는 작업 스케줄링 처리하는 방법 ✔ cron을 특정 사용자에게 제한하는 방법 ✔ 작업 예약하기

🏁 crontab, crond, scheduling, linux

지식: ⭐ ⭐
복잡성: ⭐ ⭐

소요 시간: 15분


개요

작업 스케줄링은 cron 유틸리티를 사용하여 관리됩니다. 이를 통해 주기적으로 작업을 실행할 수 있습니다.

시스템 작업을 위해서는 관리자만 사용할 수 있지만 일반 사용자는 액세스 가능한 작업 또는 스크립트에 대해 사용할 수 있습니다. cron 유틸리티에 액세스하려면 crontab을 사용합니다.

cron 서비스는 다음 용도로 사용됩니다:

  • 반복적인 관리 작업;
  • 백업;
  • 시스템 활동 모니터링;
  • 프로그램 실행.

crontabcron 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.allowcron.deny 파일

파일 /etc/cron.allow

이 파일에 포함된 사용자만 cron을 사용할 수 있습니다.

존재하고 비어 있으면 어떤 사용자도 cron을 사용할 수 없습니다.

주의

cron.allow가 있는 경우 cron.deny무시됩니다.

파일 /etc/cron.deny

이 파일의 사용자는 cron을 사용할 수 없습니다.

비어 있으면 모든 사용자가 cron을 사용할 수 있습니다.

기본적으로 /etc/cron.deny는 존재하고 비어 있으며 /etc/cron.allow 파일이 존재하지 않습니다.

사용자 허용

user1cron을 사용할 수 있게 설정합니다.

[root]# vi /etc/cron.allow
user1

사용자 금지

user2cron을 사용할 수 없습니다.

[root]# vi /etc/cron.down
user2

cron.allow 파일이 존재하지 않아야 합니다.

작업 예약

사용자가 작업을 예약하면 자신의 이름으로 파일이 /var/spool/cron/ 아래에 생성됩니다.

이 파일에는 이 사용자가 만든 모든 작업에 대한 crond가 알아야 할 모든 정보, 실행할 명령 또는 프로그램, 실행할 시간(시간, 분, 날짜...)이 포함됩니다.

Cron 트리

crontab 명령

crontab 명령은 예약 파일을 관리하는 데 사용됩니다.

crontab [-u user] [-e | -l | -r]

예시:

[root]# crontab -u user1 -e
옵션 설명
-e vi로 일정 파일 편집
-l 일정 파일의 내용을 표시
-u 일정 파일을 조작할 사용자의 이름 설정
-r 일정 파일 삭제

주의

옵션이 없는 crontab은 이전 예약 파일을 삭제하고 사용자가 새 줄을 입력할 때까지 기다립니다. 이 편집 모드를 종료하려면 ctrl + d