개발 Q&A

제목 정해진 시간에 특정 작업을 하고싶습니다. 윈도우의 예약된작업 처럼요
글쓴이 모람마 작성시각 2012/02/13 23:12:33
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 27040   RSS
개발 초보로 맨날 야근하고있는 .. 개발 신입입니다..

제가.. 만드는 사이트가.. 00시를 기점으로 db를 수정하는 작업을 자동으로 수행해야하는데요.

방법이 없을까요?

cron 을 써라 모 이런 말은 있는데;;; 무슨말인지...

서버를 세팅 해야하는건지?
서버 안만지고.. 툴을 복사 붙여넣는건지(특정자바스크립트 처럼)

아님 그냥 소스만 붙여넣으면 되는건지.. 감이 안잡혀요.. ㅠㅠ 도와 주세요~~ 흑흑
 다음글 정규 표현식에 대해 궁금한점 (5)
 이전글 ㅜㅜ 안녕하세요 느림보입니다.. (3)

댓글

세콩 / 2012/02/14 00:27:07 / 추천 0
리눅스를 다루신다면 crond 구글링 or 포럼내 묻고답하기 에서 검색해보세요

1. http://codeigniter-kr.org/qna/view/5570/page/1 
2. http://codeigniter-kr.org/qna/view/5828/page/1
milosz / 2012/02/14 08:39:34 / 추천 0
세콩님 말씀대로 cron을 사용하셔야 하는데요. 실질적으로 서버에 손 댈 수 없는 상황이라면 webcron을 사용하시면 됩니다.
헛발이 / 2012/02/14 09:30:45 / 추천 0
크론이라는것은 윈도에서 말하면 예약작업입니다..
어려운것이 아니고 그냥 예약작업에다가 URL을 적어 두면 정해진 시간에 그URL을 자동으로
한번 읽어 주는 효과를 해 줍니다.

즉 쉽게 이야기 하면

먼저 해야할 작업을 htt://test.com/db_backup 이라는 주소를 실행하면 원하는 작업이 될수 있도록
프로그랢을 만들어 놓습니다.

그리고 리눅스의 crontab 이란 곳에 "매일 0시 -> htt://test.com/db_backup" 이렇게해 두면 
매일 0시에 해당 URL을 한번 F5 한 효과를 보여줍니다.

근데 저렇게 알아보기 싶게 되어 있지는 않아요..그게 아쉽죠 ㅋㅋ

일단 프로그램 짜 놓는건 하실줄 아실테고...
프로그램 짤때 누군가 웹에서 접근할수 있잖아요.. 그래서 웹에선 접근못하게 즉 브라우져에서
저 URL을 치면 아무것도 실행안되게 해줘야 해요...
if ( $this->input->is_cli_request() )
{
    //원하는코딩하기
else
{
    show_404();
}
이렇게 해서 웹에선 접근 할수 없게 하고 서버측 즉 터미널에서만 가능하도록 하는것이죠...
그렇게 했으면 다음으로는 클론을 설정해야 해요..

클론을 한번도 안 해보셨으면 어렵게 느껴지지만..서버에 대한 권한이 있으시면 cron을 설정할수
있어요.. 하지만 서버권한이 없으면 사용할 수 없답니다.. 서버관리자에게 권한을 달라고 하던가
아니면 특정접속account를 클론도 사용할수 있게 해 달라고 하던가 해야해요..
(호스팅받는것이라면 절대 불가능합니다..)

crom 사용방법은 인터넷에서 찾아 보셔야 해요..하지만 그냥 쉽게 이야기 하면
터미널에서 #crontab -e 이라고 하면 클론설정하는 곳으로 들어가게 됩니다..

들어가서는 설정을

0 0 1 * * php /home/test.com/public/index.php db_backup main

이렇게 설정하시면 되죠..
0 0 1 * * 이것은 매달 1일에 0시에 한다는것이구요..
php 는 php를 구동해야 한다는것이구요..
/home/test.com/public/index.php 은 코드이그나이터가 있는 기본path이구요..
db_backup 은 콘트롤을 말 하는것이구요
main 은 메소드를 말 하는것이에요...

이렇게 설정하면 매달1일 0시에 구동한다는것이죠..
설정방법은 인터넷 찾아보면 잘 나와 있을거에요..

혹시 호스팅을 받거나 아니면 클론을 할수있는 상황이 아니라면
작업예약을 할수 없답니다..

대신에 무료로 외국에서 웹크론이라고 해서 회원가입해서 등록한 다음에 크론처럼 대신 읽어주는
서비스를 해 주는곳이 있어요..

http://www.mywebcron.com/

저도 여기 이용하고 있거든요..
다 영어로 되어 있지만 차근 차근 찾아보면 알수 있을거에요..

하지만 저 서비스는 무료고 언제 없어질지 모르는 그리고 언제 유료로 될지모르고
서버문제로 예약작업이 안될수 있다는 불확신이 있지만 몇년간 문제없이 서비스를 해주고
있는거 같아요...

저것이 싫다면

RSS를 편법으로 사용하는 방법도 있어요...
RSS를 대신 정해진 시간내에 읽어 주는 서버스가 있는데 그걸 편법으로 이용하는 방법인데..

http://www.moonseller.net/114

이길 함 참고 해 보세요~
그럼 도움이 되었길 바랍니다..
들국화 / 2012/02/14 11:33:10 / 추천 0
간편하게 MySQL event 를 이용하는것도 방법 이겠네요.

OS 독립적인 방법이니.. ^^
milosz / 2012/02/14 16:49:11 / 추천 0
 코멘트가 강좌급이네요ㅎㅎ 강좌로~~!!