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

주기적이고 반복적인 cron설정작업 활용 3편

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

주기적이고 반복적인 cron설정작업 활용 3



제작 : 리눅스포털 수퍼유저코리아(www.superuser.co.kr) 박성수


ㅇ 본 자료의 자세한 모든 정보는 http://www.superuser.co.kr/linuxcommandbible/ 에서 확인하시기 바랍니다.

ㅇ 본 자료의 수정 및 편집은 허용되지않습니다.







4: “, , , , 요일, 실행명령”순으로 cron설정하는 방법


crontab명령어로 root나 일반사용자들의 개별적인 cron설정을 하는 구체적인 방법에 대해서 알아보도록 하겠습니다. cron설정을 실행하는 명령어에 대해서는 다음 내용에 구체적인 사례별로 설명되어 있으므로 참고하시고 여기서는 crontab명령어로 설정되는 내용들의 설정방법에 대해서 알아보도록 하겠습니다.


먼저 rootcron설정예를 보도록 하겠습니다.

뒤에서 설명하겠지만 rootcron설정을 확인하려면 root계정으로 “crontab -l”이라고 하시면 됩니다.


20061203_TD_cron_3_html_m4b6b9794.png


위의 root계정의 cron설정을 보면 각각의 행마다 숫자와 *, 그리고 명령어들로 구성되어 있는 것을 볼 수 있습니다. 위의 예에서 보신 바와 같이 root를 포함한 각 계정들의 cron설정내용은 다음과 같이 모두 6필드로 구성되어 있습니다.


설명을 위하여 위의 rootcron설정행 중 다음행을 참고로 하여 그 의미를 설명하도록 하겠습니다.


00 03 * * * su - root -c '/root/backup.sh' >& /dev/null


맨 앞의 “00”0분을 의미합니다.
그 뒤의 “03”03시를 의미합니다.
그 뒤의 “*”는 매일을 의미합니다.
그 뒤의 “*”는 매월을 의미합니다.
그 뒤의 “*”는 매주를 의미합니다.

그 뒤의 “su - root -c '/root/backup.sh' >& /dev/null”root계정으로 “/root/backup.sh >& /dev/null”을 실행하라는 의미합니다.

, 위의 행 내용을 종합적으로 해석해 보면 매월, 매주, 매일 0300분에 root계정으로 “su - root -c '/root/backup.sh' >& /dev/null”을 실행하라는 의미입니다. 참고로 /root/backup.sh파일은 매일 실행되는 시스템의 백업스크립트가 저장된 파일로서 일백업(daily backup)을 하기 위하여 필자가 만들어 놓은 스크립트파일입니다.


, 그럼 설정내용의 예에 대한 구체적인 사례를 보았으므로 cron으로 설정되는 각행들의 필드내용을 좀 더 구체적으로 설명해 보도록 하겠습니다.


첫번째 필드

(minutes)”을 의미. 0,1,2,3,,,59분까지 원하는 대로 설정가능.

두번째 필드

(hour)”를 의미. 0,1,2,3,,,23시까지 원하는 대로 설정가능.

세번째 필드

(day)”을 의미. 1,2,3,4,,,31일까지 원하는 대로 설정가능.

네번째 필드

(month)”을 의미. 1,2,3,4,,,12월까지 원하는 대로 설정가능.


다섯번째 필드

요일(weekday)”을 의미. 1,2,3,4,5,6,7중 하나로 설정가능.
(1:
월요일,2:화요일,3:수요일,4:목요일,5:금요일,6:토요일,7:일요일을 각각 의미함. 0도 일요일을 의미함.)

여섯번째 필드

실행될 명령어 내용


주의사항1 : “*”문자


각 필드에는 “*”문자가 올 수 있으며, 이는 각 필드에 해당하는 모든 숫자를 의미 합니다. 예를 들어 “일(day)”필드자리에 “*”로 설정되었다면 설정된 명령어가 매일 실행이 된다는 의미입니다.


주의사항 2 : 하이픈(“-”)문자


각 필드자리에 하이픈(“-“)문자가 올 수 있습니다. 예를 들어 일(day)필드자리에 “11-15”로 설정되어 있다면 11, 12, 13, 14, 15일을 의미합니다. 그리고 시간(hour)필드자리에 “1-5”로 설정되었다면 1, 2, 3, 4, 5시를 의미합니다.


주의사항 3 : 콤마(,)문자

각 필드자리에는 콤마(,)문자가 올 수 있습니다. 예를 들어 일(day)필드자리에 “1,11,21”로 설정되었다면 1, 11, 21일을 각각 의미합니다. 그리고 시간(hour)필드자리에 “3,6,9”로 설정되었다면 3, 6, 9시를 각각 의미합니다.






5: crontab으로 설정한 개별사용자의 cron설정, 파일로 확인하기


root를 비롯한 개별 사용자들의 cron설정만을 모아둔 디렉토리가 존재합니다. /var/spool/cron디렉토리에는 root와 개별사용자들의 cron설정이 계정명과 동일한 파일명으로 보관되어 있습니다. 이 디렉토리에 존재하는 파일의 내용은 각 계정사용자들이 자기의 cron설정을 확인하기 위하여 사용하는 “crontab -l”명령어의 결과와 동일한 것입니다.


다음은 현재 필자가 사용하고 있는 리눅스 서버의 /var/spool/cron디렉토리내의 파일들입니다.


20061203_TD_cron_3_html_m3f984fa.png


위의 예를 보시면 /var/spool/cron디렉토리에는 bible, 그리고 root라는 파일이 존재하고 있습니다. , bible이라는 계정사용자의 cron설정파일이 bible이며 rootcron설정파일이 root라는 것을 알 수 있습니다.


이 두 파일의 내용을 살펴보도록 하겠습니다.

먼저 /var/spool/cron디렉토리내의 bible이라는 파일의 내용입니다.

이 파일의 내용은 bible계정으로 로그인하여 “crontab -l”의 결과와 동일하다는 것을 알아 두시기 바랍니다.


20061203_TD_cron_3_html_11190fdd.png


다음은 /var/spool/cron디렉토리내의 root라는 파일의 내용입니다.

이 파일의 내용은 root계정으로 로그인하여 “crontab -l”의 결과와 동일하다는 것을 알아 두시기 바랍니다.


20061203_TD_cron_3_html_3e6b1ee5.png


위의 예들로 미루어 보면 “crontab -l”이란 명령어의 결과는 /var/spool/cron/ 디렉토리에서 해당계정사용자의 파일을 가져와서 보여주는 것임을 알 수 있습니다.


이렇듯 서버관리자는 특정명령어의 실행결과가 어떤 파일을 이용하여 출력되는 것인가를 알아둘 필요가 있습니다. 훌륭한 서버관리자가 되기위해서는 서버내부의 구석구석에 설정된 모든 설정들을 손바닥에 올려놓은 듯 훤하게 알고 있어야 합니다.



리눅스포털 –수퍼유저코리아- www.superuser.co.kr


관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,042 명
  • 현재 강좌수 :  35,846 개
  • 현재 접속자 :  103 명