디스토피아

[리눅스 명령어] cron 본문

it

[리눅스 명령어] cron

늘그랬듯이 2022. 12. 26. 01:58
반응형

 

LINUX COMMAND

 

리눅스 명령어 cron

 


 

 

 


 

매일 파일이나 데이터베이스의 백업을 수행하고 싶다면?

 

백업을 수행한 후 원하는 위치에 파일을 보내기,

내부 캐쉬를 비우는 작업 등

 

원하는 시간... 사람이 없는 새벽

cron 이면 가능합니다.

 

cron을 어떻게 사용할까요?

 

 

cron 설정 읽는 법

 

 

분 시 일 월 주 : command to excute

* * * * * : 실행할 명령어

• * : 범위 내 모든 경우

 숫자 : 정확히 일치하는 그 시각, 날짜

 ' - ' 기호로 연결된 두 숫자 : 두 숫자 사이에 포함된 범위를 뜻함

• 콤마( , )로 구분돼 나열된 숫자 : 나열된 숫자 중 일치하는 경우를 뜻함

 

 

 

 

crontab 

crontab [ -u 사용자 id] 파일

crontab [-u 사용자 id] { -l | -r | -e}

•crontab -l : 예약된 작업리스트

•crontab -e : 예약된 작업 수정

•crontab -r : 예약된 작업 삭제

•crontab -u 사용자명 : 루트관리자는 해당 사용자의 crontab 파일을 보거나 삭제, 편집가능

 

 

 

crontab 사용자 제어

/etc/cron.allow

/etc/cron.deny

 

/etc/cron.deny와 /etc/cron.allow 설정파일에서 사용자에 대한 crontab 제어를 관리할 수 있다.

/etc/cron.allow

이 허용파일이 있는 경우 파일 내 지정된 사용자만 crontab을 등록할 수 있다.

지정되지 않은 사용자들은 crontab 명령을 실행할 수 없다.

/etc/cron.deny

허용파일이 없는 경우에는 이 거부 파일이 사용된다.

파일 내 지정된 사람을 제외한 나머지 사용자에게 crontab 명령 실행 권한이 주어진다.

두 파일 모두 존재하지 않을시

두 파일 모두 존재하지 않는 경우에는 대다수 시스템에서 루트 관리자만이다.

데비안과 우분투 배포판은 이런 경우 모든 사용자에게 실행 권한을 준다.

 

 

cron이 참조하는 crontab 파일 위치

/var/spool/cron

/etc/cron.d

/etc/crontab

 

cron은 시작할 때 모든 곳에 저장된 설정파일들을 읽어 메모리에 저장해두고 휴지 상태에 들어간다.

그리고 매분마다 활성화돼 변경된 crontab 파일들이 있는지 확인하고,

변경된 경우 설정을 다시 읽어 저장하고,

그 시간에 실행해야 할 작업이 있는지 확인하고 실행시킨 후 다시 휴지 상태로 들어간다.

 

/var/spool/cron

시스템 개별 사용자를 위한 crontab 파일 위치이며

일반적으로 root 계정용 하나와 계정 사용자당 1개의 파일을 가진다.

파일명은 사용자의 계정명이며 cron은 이 이름을 바탕으로

각 설정 파일에 지정된 작업들을 실행할 때 사용할 UID를 결정한다.

이 곳에 있는 설정파일들은 crontab 명령으로 관리한다.

 

/etc/crontab

관리자가 직접 지정한 작업들을 설정하며, 임의의 사용자 권한으로 실행할 수 있다.

시스템 관련 작업들을 등록해 사용하는 곳이다.

 

반응형
Comments