• ベストアンサー

定期的に.plを動かすには(cron?)

1時間に1回、POPサーバを見に行き、受信メールがあればDBにチェックをつけるという処理をしたいと思っています。 そのプログラム(perl)は何とか作成できそうなのですが、定期的にそのperlプログラムを実行させる方法が分かりません。 UNIX系であれば、cronかなと思うのですが、ファイル自体を動かす事ができるのでしょうか? また、定期的に動かす方法が他にもあるのでしょうか? どうかご教授下さい。よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.2

crontabの内容は以下のようなものでいいでしょう。 0-59/5 * * * * ユーザ名 スクリプトのパス 各フィールドは分、時、日、月、曜日、ユーザ名、コマンドです。 *は全て、2つの数を-でつなぐと範囲指定、/の後に数を書くと繰り返し感覚となります。 0-59/5は「0分から59分まで5分ごと」と言う意味になります。 スクリプトの先頭行で #!/usr/bin/perl のようにperlの実行プログラム(スクリプトではなく)のパス名を指定してください。

noname#107402
質問者

お礼

何度もありがとうございます。大感謝です! コマンド操作苦手で。。 ありがとうございます。

その他の回答 (2)

  • ka-2
  • ベストアンサー率37% (22/58)
回答No.3

荒業ですが、違う方法が1つあります。 cron(crontab?)が使えない場合にでもつかって使ってみてください。 system というコマンドを使います。 例:$ret = system "./test.pl"; これを使えば外部のコマンドを実行できます。 私のサイトでは試験的にカウンタに仕込んでメールの配信などをしています。 (これが出来る条件が、良く呼び出されるCGIである、多少遅くなっても我慢できる) プログラムが呼び出されて終了するまでメイン(呼び出したほう)の処理がスリープしますが、多くの妥協&最終手段としては使えると思います。

noname#107402
質問者

お礼

ご回答ありがとうございます。 スミマセン、使い方が上手く理解できませんです。。 perl(プログラム自体)に長けている訳ではないのですが、 ”POPサーバを見に行き、メールが届いていたら、少し処理をする”事は普通のプログラムで書けると思っています。 ただ、そのプログラムを定期的に動かすプログラムを書く方法が分かっていません。一つのプログラムをループさせて、24時間365日動かし続けるのは無理があると思っています。 そこで、サーバのコマンドかシェルスクリプトでなら、何とか定期的に動かせるかな、いや、動かしたいと思った訳です。 元々、コマンドを使いたい訳でなく、定期的に動かすにはどうするか?ということだったんです。 でも、CGIから動かすようにすれば、systemで書けそうですね、クライアントにJavascriptで定期的に実行させるようにして。。。うーん、もう少し力をつけねばと思いました。

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.1

cronでスクリプトは動作します。 先頭の#!行でperlのパスが記述されていればオッケーです。

noname#107402
質問者

お礼

ありがとうございます。 # crontab xxx.pl で良いのかな? 挑戦してみます。他のやり方も探して見たいです。 では。

関連するQ&A