人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perlの質問です。
ブラウザでCGIファイルを呼び出して実行していると思うのですが、「タイマーを設定して自動的に何時になったらsample.cgiを実行する。」というようなことがしたいです。何か方法ありますでしょうか。よろしくお願いします。

●質問者: rain2003
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:CGI Perl タイマー ファイル ブラウザ
○ 状態 :終了
└ 回答数 : 7/7件

▽最新の回答へ

1 ● x31
●17ポイント

サーバーでcronに時間を設定するのが一般的だと思います。

普通のレンタルサーバーではあまり許可されていないかもしれません。

cronについて

http://www.express.nec.co.jp/linux/tech/knowledge/system/crond.h...


2 ●
●17ポイント

バッチ処理を行いたいということでしょうか。

UNIX系のOSであればcronを使うと良いでしょう。

[参考URL]


3 ● tamo2_xvi
●17ポイント

http://www.express.nec.co.jp/linux/tech/knowledge/system/crond.h...

サーバによると思いますが、私はこちらを利用しています。

◎質問者からの返答

早いお返事ありがとうございます。

ご紹介いただきました3つリンク先見てみましたが、ちょっと読んだだけではわからなかったので、もうちょっと見てみたいと思います。

検索したところ、

http://ninkiweb.net/server/cron.html

こんなページを見つけました。

手順としては、

?telnetでログイン

?crontab -e

?設定ファイルを編集

[例] 0 0-23/4 * * * /home/sample.cgi

とすると、自動的にファイルが読まれて実行されるのでしょうか?

それとも、

[例] 0 0-23/4 * * * /home/sample.sh

shファイルを作って、その中にsample.cgiを呼び出す処理を記述しないといけないでしょうか。自分で調べられるか不安なので具体的な書き方などお願いできますでしょうか。


4 ● villain
●2ポイント

CGIはブラウザが呼び出しているわけではありません。

クライアント側がサーバにファイルを要求(リクエスト)した際に

そのファイルがCGIだったとき、サーバがCGIスクリプトを実行

します。

その実行結果のみをリクエスト結果としてクライアント側に

返します。

クライアント<->サーバ間の通信は普通のHTMLなどの通信と

まったく変わりません。


クライアントのタイミングに合わせてリクエストを繰り返す場合は

JavaScriptでタイマーを使用してください。

ただし、クライアント側がJavaScriptを有効にしている必要が

あります。


◎質問者からの返答

>クライアントのタイミングに合わせてリクエストを繰り返す場合はJavaScript

JavaScriptは詳しくないのですが、そのページを開いていないとだめですよね?

cronについてのご回答お待ちしております。


5 ● villain
●2ポイント

CGIはクライアント側から要求があって初めて実行できるもの

なので、サーバ側が勝手に実行してその情報を勝手にクライアント

側に送信することはできません。

(そもそも、どのクライアントに送信したらいいのかサーバ側は

分かりませんし)


Locationヘッダを使用したリダイレクトはヘッダを受信した

クライアント側が再度そのURLへのリクエストを発行することで

実現しているのでこれもクライアント側からの要求に応えている

だけです。


バッチ処理はサーバローカル上のみでの実行になりサーバ側が

クライアント側に指定時刻にリクエストを発行させるようなことは

できません。

クライアント側が定期的にリクエストを発行するにはJavaScript

などを使用する以外はありません。

(クライアント側のローカルでサービスなどのような感じで

常に常駐/監視している場合は別ですが)


取り敢えず、CGIとして動かすならサーバ側ではなくクライアント

側に細工しないといけません。


何をしたいのかによって異なりますが...。

(あまり的を射た回答でなくて申し訳ありません)


URLはダミーです。

◎質問者からの返答

>取り敢えず、CGIとして動かすならサーバ側では

>なくクライアント側に細工しないといけません。

>何をしたいのかによって異なりますが...。

>(あまり的を射た回答でなくて申し訳ありません)

できるっていう方、できないっていう方がいらっしゃってちょっと混乱してきました。^^;

WINDOWS+ActivePerlでプログラムを作っているとき、コマンドプロンプトで、Perl sample.cgi

って打つと実行してくれます。

そんな感じでcronを使って実行できるのかなぁと思ったのですが。

例えは、sample.cgiの中身が、

クライアントのブラウザに何か表示させるということではなくて

・ファイルのバックアップ(コピー保存)

・メールのリストをファイルから読み込んでsendmailを使って送信

っていう場合、無理なんでしょうか?


1-5件表示/7件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ