ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 웹호스팅에서 주기적으로 프로그램 돌리기 꽁수 , crontab 스케줄러 대용
    달을파는아이 2008. 10. 18. 10:06

    서버호스팅이 아닌 웹호스팅을 하게 되면 리눅스의 값진 기능들을 사용할수 없는 아쉬움이 있다. 그중에서 가장 아쉬운 부분이 crontab 명령를 못쓴다는 점이다. 그런 아쉬움을 달래기 위해 예전에 feedburner를 이용한 주기적인 프로그램 실행(crontab 대용) 라는 글에서 피드버너를 이용하는 법에 대해서 언급을 한적있다.

    지금 테스트하는 호스팅은 카페24다. 혹자들은 깡패24라고도 하는데, 가장싸고 편리한 기능들이 많아서 애용하고 있다. 가입할려면 아래 배너 클릭하면, 바로 할 수 있다. 왠만한 홈페이지는 1년에 5000원짜리 하면 된다.


    호스팅이 완비 되었으면 실제로 해보자. 저번글에서 전체적인 개념만 설명한것같아서 실제 소스코드와 좀더 상세한 설명을 추가한다.

    피드버너(http://www.feedburner.com)는 RSS 피드를 대신해주는 서비스를 제공하는 사이트다. 작년인가 구글에 인수되어서 화재가 되기도 했다.

    RSS라는게 발행을 하고 사람들이 가져가기 시작하면 트래픽이 많이 걸릴게 된다. 그런 트래픽을 대신 받아주어 블로거의 부담을 덜어주는 서비스를 하는게 피드버너다.

    이 피드버너는 주기적으로 블로거의 RSS 주소로 들어와 새글이 없는지 체크한다.

    이 주기적으로 들어와서 체크할때를 이용하는게 이 꽁수의 핵심이다.

    즉, RSS 를 생성하는곳에 원하는 프로그램을 넣어 두면 피드버너가 주기적으로 그 프로그램을 실행시켜주게 된다.

    이 꽁수의 단점은 자기가 원하는 시간 혹은 원하는 시간간격을 설정할수가 없다는 점이다. 긁어가는 타이밍은 무조건 피드버너의 마음대로다. 하지만 웹호스팅에서 사용하기에는 이정도도 주하나님의 광명이다.

    하루정도 얼마나 자주 피드버너가 프로그램을 실행시켜주는지 체크해보았더니 평균 3시간 정도 되는것같았다.

    피드버너 실행 시간들

    2008/10/03 11:45
    2008/10/03 14:21
    2008/10/03 16:56
    2008/10/03 19:31
    2008/10/03 22:06
    2008/10/04 00:41
    2008/10/04 03:16
    2008/10/04 06:10
    2008/10/04 08:57
    2008/10/04 11:36
    2008/10/04 14:21

    이제 피드버너를 속이는 일만 남았다. 피드버너가 지금 가져가는게 RSS 라고 믿게 만들고, 이 RSS는 꾸준히 내용이 바뀌며 업데이트가 되고 있다고 믿게 만들어야 한다.

    <?

    include 'myprogram.php';//실행시킬 프로그램을 include 한다

    ob_start();

    echo '<?xml version="1.0" encoding="UTF-8"?>';

    ?>

    <rss version="2.0">

        <channel>

            <title>달을 파는 아이</title>

            <description>프로그래밍,책이야기,웹</description>

            <link>http://moonseller.net</link>

            <lastBuildDate><?=date("Y/m/d H:i",mktime())?></lastBuildDate>

            <generator>FeedCreator 1.7.2</generator>

            <item>

                <title>새로 올라온 글입니다</title>

                <link>http://moonseller.net</link>

                <description>글 올린 날짜 : <?=date("Y/m/d H:i",mktime())?></description>

            </item>

        </channel>

    </rss>

    <?

    $tt=ob_get_contents();

    ob_end_clean();

    echo $tt;

    ?>

    소스코드를 보면 정말 간단하다. 원리는 간단하다.

    젤 상단에 include 'myprogram.php'; 를 해서 실행시키고 싶은 프로그램을 넣어 둔다. 그리고 아래쪽에는 쓸데없는(?) RSS를 만들어 피드버너가 지금 가져가는것이 RSS 라고 믿게 만든다. 끝.. ^^;

    주의할점이 있다.

    • 이 소스는 반듯이 UTF-8 인코딩으로 된 파일에 넣어야 한다.
    • myprogram.php 에는 에러가 있어서는 안된다.
    • 과도하게 실행시간이 긴 프로그램은 사용할수가 없다.

    위 세가지를 어기면, 피드버너가 받아주지 않는다.

    위 소스를 저장한 파일이 myfeed.php 라면 , 이 파일을 피드버너에 가서 등록만 시켜주면 모든일은 끝이다.

    피드버너 등록에 대해서는 아래 링크들을 참조해주세요~

     

    이상으로 피드버너를 이용한 웹호스팅에서 꽁수로 스케줄러 돌리기 강좌를 마칩니다. ^^

    댓글

달을파는아이 @ nalab.kr