머드클럽
머드게임이란?
게임은 어떤 환경에서?
본격적으로 게임해 볼까?
배너교환
머드강좌
일반 머드강좌
성천사님의 머드강좌
혼님의 머드강좌
방울꽃님의 머드강좌
리트님의 머드강좌
2Soo님의 머드강좌
내머드소개하기
접속가능머드
내머드소개하기
자료실
접속 프로그램
머드소스
머드 유틸리티
기타
커뮤니티
공지사항
등업신청
머드클럽에바란다
자유 게시판
질문 AND 답변
머드클럽 갤러리
구인구직
머드게임소개
사신전(死神戰)
사신전 소개
사신전 맵
사신전 명령어 모음집
천명(天命)
천명 소개
천명 맵
천명 명령어 모음집
마이페이지
로그인
회원가입
계정찾기
로그인
회원가입
계정찾기
텍스트머드클럽
검색
CRON 에 관한 강좌
리트
0
1,143
0
0
2004-10-03 16:30:22
리눅스 시스템의 백업 프로그램을 실행시키기 위해서 새벽 3시에 일어나야 한다면 얼마나 괴로운 일이겠는가? 혹은 저녁에 있을 약속을 잊지 않도록 우리 자신에게 메시지를 보내는 일이 가능할까? 리눅스에는 스케쥴링을 할 수 있는 도구들이 갖추어져 있다. 이들 도구를 이용하면 당신은 밤새 편하게 쉬면서도 새벽 3시에 정확히 백업 프로그램을 실행시킬 수 있다. 또한 어떤 약속이든지 약속 시간 이전에 알 수 있도록 email을 받아 보게 할 수 있다. 이 글에서는, 스케쥴링 유틸리티인 at과 cron에 대해 살펴 보도록 하겠다. <br /> <br /> <br /> <br />at 유틸리티 사용법 <br />단 한번만 실행될 작업에 대해서 at 명령이 사용된다. at은 대화식 프로그램으로 하나의 인자를 가지는데, 이 인자는 작업을 실행시키고자 하는 시간과 날짜를 가리킨다. at 명령의 모든 출력은 email로 보내진다. 자, 예를 하나 들어 보자. 지금은 오후 1시이고, 오후 3시에 회의가 있다. 이 회의를 잊지 않도록 오후 2시 30분에 우리 자신을 일깨우기 위해 다음과 같이 입력할 수 있다: <br />at 2:30pm <br />at> echo "회의 준비는 다 되었나요???" <br />at> ctrl-d <br />ctrl-d 를 눌러서 우리가 실행하고 있는 것을 마치겠다는 것을 알려야 한다. 그래서 이제 당신은 오후 2시 30분에 "회의 준비는 다 되었나요???"라는 내용의 email을 받을 것이다. 굉장하지 않은가? 이제 당신이 이해해야만 하는 한 가지는 at 명령은 시간을 표현하는 방법에 대해서 매우 유연하다는 것이다. 예를 하나 들도록 하자. 평생동안 군대에 몸담아 온 당신은 군대에서 시간을 말하는 방법에 익숙해져서 다른 사람들처럼 일반적인 방법으로 말하지 않는다고 하자. 그런 당신이 16시00분(1600 hours)에 모든 극비 문서 파일을 삭제하고자 한다. 그러면 당신은 다음과 같이 입력할 것이다: <br />at 1600 <br />at> rm -rf /top-secret <br />at> echo "Top secret files deleted" <br />at> ctrl-d <br />16시 00분에 그 디렉토리와 그 안에 있는 모든 것이 삭제될 것이다. 하지만, 이 명령들이 실행될 때, 명령을 실행할 때 나오는 출력이 없으면 당신은 어떤 email도 받지 못할 것이다. 그래서 우리는 at 명령이 우리에게 파일들이 삭제되었음을 알려주는 email을 보내도록 한 것이다. 이제 당신은 아마도 at이 다른 어떤 일을 할 수 있을지 궁금해 할 것이다. 너무 게을러서 숫자 입력하기 싫어하는 사람들에게 안성맞춤인 기능이 있다. 예를 들면 다음과 같이 입력할 수도 있다: <br />at midnight <br />at> mail foo@bar.com -s "Where is my money?" < email.txt <br />at> ctrl-d <br />위의 명령은 작업을 한밤중(midnight)에 실행시킨다. midnight은 noon이나 teatime(오후 4시)으로 바꿀 수 있다. 좀 더 특별한 경우를 살펴 보도록 하자. 지금으로부터 10일 후, 오후 3시에 컴퓨터에 로긴하기 위해서 당신의 IP를 /etc/hosts.allow 파일에 덧붙여 써 놓을 필요가 있다고 하자: <br />at 3pm + 10 days <br />at> echo "ALL: 123.456.78.9 >> /etc/hosts.allow" <br />at> ctrl-d <br />이제 마지막 예제의 가정으로, 당신은 지금이 몇 시인지 모르지만, 약 40분 뒤에 당신의 상사에게 전화를 해야만 한다고 하자. 다음의 명령을 이용하면 전화해야 할 시간 5분 전에 컴퓨터가 email로 알려줄 테니 몇 시인지 알려고 계속 애쓰지 않아도 된다: <br />at now + 35 minutes <br />at> echo "당신의 상사에게 전화하라" <br />at> ctrl-d <br />이제 당신은 상사에게 전화해야 할 시간보다 5분 앞서 email을 받을 것이다. ctrl-d 을 누르기 전까지는 at 명령으로 실행하고 싶은 명령을 몇 개를 쓰더라도 실행시킬 수 있다는 것을 기억하라. <br /> <br /> <br />부가적인 at 유틸리티 <br />당신이 하고 싶은 일을 할 수 있도록 리눅스를 스케쥴할 수 있게 된 것은 아주 좋은 일이다. 하지만 어떤 작업이 실행되기 위해 대기하고 있는지 보고 싶거나 실행을 취소하고 싶은 작업이 있는 경우에는 어떻게 해야 할까? 실행되기 위해 대기하고 있는 작업 목록을 보기 위해서는 atq 명령을 이용하면 된다. atq는 작업 번호 뿐만 아니라 작업이 실행되도록 스케쥴된 시간도 함께 보여준다. 실행되지 않도록 작업을 삭제하고 싶은 경우에는, atrm 다음에 작업 번호를 입력하면 된다. 모든 작업은 번호를 가지고 있고 이 번호는 atq 명령을 통해 볼 수 있다. 다음을 살펴 보자: <br />atq <br />20 2000-03-14 15:41 a <br />21 2000-03-12 16:11 a <br />22 2000-03-13 00:00 a <br />위의 예에서 보면, 내게는 실행되기를 기다리고 있는 세 개의 작업이 있다. 작업 21을 삭제하기로 했다면 다음 명령을 입력하면 된다: <br />atrm 21 <br />작업 21이 삭제되었는지 확인하기 위해서 다시 atq를 실행해 보아라. 작업 21은 더 이상 존재하지 않을 것이다. <br /> <br /> <br /> <br />cron 사용법 <br />cron은 at과 같이 정해진 시간에 프로그램을 실행하기 위해서 사용된다. 두 명령의 차이점은 cron은 한 번 이상 실행되어질 작업을 위해 고안된 명령이라는 것이다. 예를 들어, 매일 오후 3시에 실행해야 하는 프로그램이 있다 하자. at을 이용해서는 그 작업을 할 수 없다. at은 프로그램을 오직 단 한번 실행하고는 당신이 다시 실행하도록 명령을 또 주지 않으면 결코 다시 실행하지 않는다. 불행히도 cron 명령은 초보자들에게는 약간 어려울 수도 있다. 하지만, 일단 cron의 사용법을 알아두면 많은 도움이 될 것이다. cron을 이용해서 명령을 정해진 시간에 실행하기 위해서는 crontab 명령을 이용해야 한다. 바로 이 명령을 이용해 보자. 매 분마다 "Hello World"라는 내용의 email을 받고 싶다고 하자. 우선, 다음을 입력하라: <br />crontab -e <br />-e 플래그는 당신의 현재 cron 테이블을 편집할 수 있게 해준다. 아마도 당신의 cron 테이블에는 아무 것도 없을 것이므로 다음을 입력하자: <br />* * * * * /bin/echo Hello World <br />위의 라인은 무엇을 뜻하는가? 처음의 다섯 개의 *는 분, 시, 일, 월, 요일을 나타낸다. 첫번째 필드인 분은 0에서 59까지의 값을 갖고, 두 번째 필드인 시는 0에서 23까지, 세 번째인 일은 1에서 31까지, 네 번째인 월은 1에서 12까지(또는 jan, feb, mar, 등 달의 이름), 마지막 다섯번째인 요일은 0에서 6까지(또는 mon, tue, wed 등 요일의 이름)의 값을 갖는다. 그 다음에 오는 /bin/echo Hello World는 명령 필드를 말한다. 여기에는 특정 시간, 날짜에 실행할 명령을 명시한다. 그래서 이 명령을 매주 월요일 오후 2시 30분에 실행하려면 다음과 같이 입력하면 된다: <br />30 14 * * mon /bin/echo Hello World <br />첫번째 항목은 30분을 나타내고 두 번째 항목은 14시, 즉 오후 2시를 나타낸다. 그 다음의 두 개의 *로 나타나는 항목들은 매일, 매월을 뜻한다. 그리고 마지막으로, 월요일(mon)을 나타내고 있는 가장 끝 항목은 프로그램을 매 월요일에만 실행시킬 것을 말하고 있다. 만일 이 프로그램을 매일 실행하고 싶다면 mon으로 된 필드를 *으로 바꾸면 된다. cron 사용법에 익숙해지기 위해 몇 개의 예제를 더 들도록 하자: <br />0 2 * * * /bin/echo Hello World <br />이것은 매일 정확히 오전 2시에 명령을 실행한다. 다음의 예는 7월 1일 오전 5시 21분에 명령을 실행할 것이다: <br />21 5 1 jul mon /bin/echo Hello World <br />일단 프로그램이 한 번 실행되고 나면, 다음 7월 1일에 다시 실행되기 위해 대기하게 된다. 앞으로 보게 될 것이지만, cron은 매우 유연하고 매우 강력한 프로그램이다. cron의 사용법을 배우는 것은 중요하다. 이제 약간 더 복잡한 것들을 살펴 보자. 당신은 프로그램을 매일 오후 3시, 오후 6시, 오후 11시 정각에 실행하고 싶어 한다고 가정하자. 시간 필드에 사용되는 시간을 쉼표로 분리해서 당신이 원하는 바대로 할 수 있다(다른 필드도 마찬가지이다): <br />0 15,18,23 * * * /bin/echo Hello World <br />쉼표 다음에 공백 문자를 두지 않도록 하라. 다음은 위의 예제를 월요일과 수요일에만 실행하도록 하는 예제이다: <br />0 15,18,23 * * mon,wed /bin/echo Hello World <br />이것으로 충분해 보이지만 한 가지가 더 있다. 당신은 cron이 명령을 특정 시간으로부터 또 다른 특정 시간까지 계속해서 실행하도록 할 수 있다. 예를 들어, 프로그램을 월요일부터 목요일까지 실행하고 싶다고 하자. 다음의 명령을 통해 그렇게 할 수 있다: <br />0 3-5 * * mon-thu /bin/echo Hello World <br />이 명령은 월요일부터 목요일까지는 매일 오전 3시부터 5시까지 프로그램을 실행한다. 이로서 어떤 명령이라도 당신이 원하는 시간에 실행할 수 있다. <br /> <br /> <br /> <br />crontab의 부가적인 플래그 <br />앞에서 언급한 –e 플래그 외에, crontab 은 -l 플래그를 가지고 있다. 이 방식으로 실행될 때, crontab 은 당신의 현재 cron 테이블을 보여주면서 어떤 것이 언제 실행될 것인지 보여 줄 것이다.만일 당신이 루트 사용자로서 실행하면, -u 플래그 다음에 사용자 이름을 입력해서 그 사용자의 cron 테이블을 편집하거나 또는 단순히 그 내용을 볼 수도 있다. <br />스케쥴링의 제한 <br />만일 당신이 시스템을 여러 사용자가 사용하는 호스트로 운영한다면, 여러 가지 이유로 사용자들이 cron이나 at을 사용하지 못하도록 하고 싶은 경우가 있을 것이다. 사람들이 cron을 사용하지 못하도록 제한을 하기 위해서는 /etc/cron.deny라는 파일을 만들고 사용을 제한하고 싶은 사용자의 이름을 그 안에 적으면 된다. at을 사용하지 못하도록 제한하고 싶을 때는, 마찬가지로 /etc/at.deny라는 파일을 만들고 사용을 제한하고 싶은 사용자의 이름을 적는다. nobody와 같은 디폴트 시스템 사용자를 제한할 때는 조심해야 한다. 이들 계정은 종종 특정한 시간에 그들 자신의 작업을 실행한다. <br />결론 <br />리눅스를 보다 효율적이고 사용하기 쉽게 만들기 위해 스케쥴링에 대해 알아야 할 필요가 있는 것은 이것이 전부다. 이들 명령들이 어떻게 작동하는지 반드시 잘 알아두도록 하라. 사용법을 잘 알아 두는 것은 때때로 일을 해내는 유일한 방법이기도 하다. 당신의 시스템을 백업하거나 파일 시스템의 통합성을 체크해서 그 결과를 email로 당신에게 알려 준다든지 하기 위해 cron을 설정할 수 있다. <br />
0
0
새글
답변
수정
삭제
최신목록
전체목록
VI 에 관한 강좌
[필수]텍스트 머드 운영에 필요한 리눅스 명령어
0
Comments
-표시할 내용이 없습니다.-
코멘트를 삭제할 비밀번호를 입력하세요.
비밀번호:
댓글에 답하기
입력
닫기
정회원 이상만 코멘트 쓰기가 가능합니다.
총 게시물 4개 / 검색된 게시물: 4개
강좌요청 받을께요~^^;;
강좌의 대략적인 내용과 목표
VI 에 관한 강좌
3
1208
0
0
리트
2004-10-03
CRON 에 관한 강좌
0
1144
0
0
리트
2004-10-03
[필수]텍스트 머드 운영에 필요한 리눅스 명령어
0
1394
0
0
리트
2004-10-03
머드 소스의 전체적인 소스 강좌
3
2135
0
0
리트
2004-09-30
1
검색
글쓰기
최신목록
전체목록
시작일
종료일
분류별 검색
전체보기
검색어
이름
제목
내용
검색
닫기
로그인
회원가입
계정찾기
개인정보처리방침
이용약관
PC화면
Copyright (c) 텍스트머드클럽. All rights reserved.
쪽지를 전송하고 있습니다. 잠시 기다려주세요.
쪽지보내기
받는이(ID/닉네임)
닉네임으로 입력
내용
쪽지가 도착하였습니다.
쪽지함
쪽지 내용을 읽어오고 있습니다. 잠시 기다려주세요.
--