• ベストアンサー

BBSのシステムに定期的に書き込みをするプログラム

perlでプログラムを組んでいます。 今、自宅のサーバーでhttpサーバーを立てているのですが、 その中にBBSのCGIがあります。 特定の時間に他のプログラムのログを読み取り、その結果を BBSに書き込むperlのプログラムを組みたいのですが、どのようにしたら perlからcgiを動作させられるかわかりません。 今まではperl単体で完結するプログラムのみを組んでました。 どのような命令を使ったら良いのか教えて下さい

  • Perl
  • 回答数4
  • ありがとう数5

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

  • ベストアンサー
noname#21216
noname#21216
回答No.4

OSはなんでしょうか? linux系なら No.3さんのいうように  cronという定期実行ソフトに登録します windowsなら、  スタートメニュー をたどっていき →アクセサリ→システムツール にある タスク を起動して  予定(自動実行)を追加します  (perlへのパス+exe + コマンドライン(cgi plファイルのフルパス)) で いいかと思います。

tukikageran
質問者

お礼

ご回答ありがとうございます。 windowsですのでタスクの設定でいこうと思います。 定期実行にフリーソフトを探すつもりでしたが、タスク登録が出来ると知り 大変助かりました。

その他の回答 (3)

  • haru1234
  • ベストアンサー率47% (22/46)
回答No.3

「定期的に」を実現するにはperlの関数を探しても見つからないですよ。 (よっぽど特殊なことをすれば不可能とは言わないですが) サーバのOSがUNIX系だということを前提に書きますが、 定期的にperlを実行するにはperlのファイルをcronに登録する必要があります。 >どのようにしたらperlからcgiを動作させられるかわかりません。 exec('何らかのプログラム.cgi'); で良いんじゃないですか?

参考URL:
http://www.mediaweb.biz/database/others/cron.html
tukikageran
質問者

お礼

ご回答ありがとうございます。 サーバーのシステムはwindowsです。 残念ながらcronは使えません。 スケジューリングについてはフリーソフトでランチャー系のソフトを探して こようと思ってましたが、 #4の方にwinでのスケジューリングの方法を教えていただきましたので、 それで設定しようかと思います。 それと、exec('何らかのプログラム.cgi');ですが、BBSなのでCGIを実行するだけ ではダメで、postする必要があります。

noname#19884
noname#19884
回答No.2

BBSと他のプログラムを実行するサーバーは同一でしょうか? 同一サーバーならばBBSの書き込み部分を他のプログラムに移植するだけで問題無さそうです。

tukikageran
質問者

お礼

ご回答ありがとうございます。 BBSのプログラムの一部を流用しない理由として、 BBSの書き込みと作ったプログラムの実行が重なってしまうと 書き込みファイルが破損する可能性があるので、 BBSにpostしてBBS自身に書き込みさせたかったのです。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

>perlからcgiを動作させられるかわかりません。 参考URL#2のような感じでPOSTできます

参考URL:
http://okwave.jp/kotaeru.php3?qid=1765613
tukikageran
質問者

お礼

ご回答ありがとうございます。 ちょっと難しそうですが、やってみようと思います。 ありがとうございました。

関連するQ&A

  • フリーBBSプログラムについて

    インターネット上でフリーのBBSプログラムがいくつもあります。 その中の多くのプログラムはログの表示更新時間を手動であったり、 任意の時間を設定出来ることが可能ですが、それらとは違って、 チャットで発言がされるたびに表示ログを更新されるフリーのBBS プログラムをご存知ないでしょうか?

  • BBSとサーバーの関係?

    BBSを複数設置するのに、BBSごとにフォルダーを作ってそれぞれにCGIスクリプトを入れるように解説しているところもありますが、1つのスクリプトで兼用できるようなら、1つにした方がサーバーへの負荷は少ないものなのでしょうか?もしそうなのでしたら、それはCGIスクリプトが少なくなって、その分のファイル容量が軽くなったからとはちがいますよね?あとサーバーの負荷をすくなくするのに、CGIで呼び出す(表示)のでなく、html文で呼び出す・・などと言うようなことが書いてあるのですが、このへんの所をどなたか分かりやすくおしえてくださいませ。CGIで作られたhtml文を表示すると言うことなのでしょうが、たとえばbbs.cgiを呼び出した時のぺーじのテンプレートがtemp.htmlとしてそこに書き出される文がlog.textとすると、このlog.text をだけを呼び出すと言うことなのでしょうか?でもlog.hrmlでないから、ブラウザーでよびだせるのかなー?私とんちんかんな事いってるかも・・・よろしくお願いします。

    • ベストアンサー
    • CGI
  • CGI(BBS)の設置が出来ません(1)

    掲示板CGIサンプルをDLして設置作業を行っていますがうまく設置できません。 まず、サンプルをDLすると、以下の8書類が表示されました。 ・●●●.html(記事入力のHTML) ・●●●.html(記事表示のHTML) ・●●●.html(過去記事表示のHTML) ※HTMLのパーミッションは「666」に設定 ・jcode.pl(644に設定) ・bbs.cgi(755に設定) ・bbs.log(666に設定) ・bbs2.cgi(755に設定) ・pastno.dat(666に設定) ・プロバイダで指定されたPerlへのパス #!/usr/local/bin/perl CGIはプロバイダから指定されたcgi-binへアップしました。パーミッションの設定も上記の様に行いました。 ただ、bbs.cgiのソース(?)の中でよく分からない個所がありました。 (2)へ続く

    • 締切済み
    • CGI
  • perlによる外部プログラムの実行

    perlにてCGIを作成しています。 ブラウザでCGIにアクセスしたとき、gpgというコマンドプロンプトの プログラムを実行したいと考えており以下のようなプログラムを作成しました。 test.batを単体で実行したときにはうまく動作するのですが、CGIを介して 実行するとうまくいきません。 CGIのプログラム (WriteCmd.cgi) **********************************  #!c:/Perl/bin/perl  print "Content-type: text/html\n\n";  print "test.batの実行\n<br>";  system("test.bat");  exit; ********************************** test.bat **********************************  gpg --batch --gen-key sample.txt ********************************** またtest.batの内容を **********************************  mkdir test ********************************** としてみるとディレクトリがちゃんと作成できるので WebサーバやPerlのパスの問題ではないと考えております。 よい解決方法がありましたら教えていただけると助かります。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • CGI(BBS)の設置が出来ません(2)

    --------------------↓ # ログディレクトリ (フルパスだと / から) $log_dir = "."; ↑これは「/bbs.log」と入れるのでしょうか? ちなみに上記全ての書類はcgi-binで同階層です。 # 表示ファイルディレクトリ (フルパスだと / から) $htm_dir = "."; ↑これもよく分かりません。 # CGIスクリプト自身をURLで指定 $script = "http://www.●●●.ne.jp/cgi-bin/lomobbs.cgi"; ↑の様に入れましたが合っていますでしょうか? # 表示ファイル (index.html) のある「ディレクトリ」をURLで指定 $htm_url = "http://www.●●●.ne.jp/cgi-bin"; # ログファイル名 $logfile = "bbs.log"; # ロックファイル名 $lockfile = './bbs.lock'; # 過去ログのあるディレクトリ (フルパスだと / から) $past_dir = "."; # 補助プログラムのファイル名 $subfile = './bbs2.cgi'; ---------------------------- 以上、アヤシイ個所を書いてみました。 おかしな個所があれば教えてください。 ちなみに、DLしたcgiの書類名を変更したのですが、 それは何か影響はありますか? いくらやり直してもページが表示されません。

    • 締切済み
    • CGI
  • PHPでBBSを作りたいのですが・・・。

    初心者の初心者です・・・。 使っているサーバーがPHPが出来るので、意外と簡単と噂のPHPを勉強しています。 今使っている本はMYSQLなどのデータベースと関連付けているもので、サーバーではMYSQLは使えないそうなのです。 データベースがなくても、なにやら空のファイルを作ってそこにログを蓄積、HTMLとして出力すればBBSは出来るらしいのですが、じっさいPHPのプログラムの中ではどういった文を書けばよいのでしょうか・・・。 配布されているスクリプトのソースを何回かみて、なんとなく・・・これかなー??みたいのはわかるのですが、完成されたプログラムは長いし複雑すぎてちょっと辛いです。お願いします、助けてください(;;) たとえば、フォームに入力した1文字を送信ボタンのようなものを押すことで、ページに出力。 ログを残しながら次々に出力できるようにするプログラムの例とかを教えていただけるとうれしいです。

    • ベストアンサー
    • PHP
  • 「写メールBBS」のようなものをperlで。

    レッツPHP(http://php.s3.to/)さんのところの「写メールBBS」のようなperlスクリプトを作ってみたいと思っています。 が、メールを取り込む(?)ような動作をするプログラムを書いた事がないので、まったくさっぱりわかりません。 で、サンプルになりそうなperlスクリプトを探してみたのですが、 PHPばかりでみつかりませんでした。(PHPは全くわかりません) 参考になりそうなperlスクリプトがあれば教えてもらえないでしょうか。 もしくは処理の流れを簡単に教えて下さると助かります。

    • ベストアンサー
    • Perl
  • こういうことってできるんでしょうか?

    まだまだ勉強中なので、よく理解できてない点が多いんですが、PerlでCGIプログラムを組まなければいけなくなりそうなので質問させていただきます。 したいことは ●あるログファイルが一定の量を超えると、他のサーバにそのログファイルを移したい。 ●他サーバに移したログファイルは削除し、新たなログファイルを生成する です。 これをおそらく既存のCGIに埋め込む形で作ることになりそうです。 フリーで公開されているスクリプトを見ていると、ログファイルを過去ログとして保存していくことができるのはわかっています。 それを他サーバに移すことは可能なんでしょうか? また、既存のCGIでは、そのログからアクセス解析等を行っています。 他サーバに古いデータが移ってしまうと、おそらく解析結果も変わってしまうことになりますよね? 仮に上記のようなプログラムが組めるものとして、やっぱりかなり難しいプログラムになるんでしょうか?

    • ベストアンサー
    • CGI
  • cgi プログラムについて

    お世話になります。 Perl,cgi,プログラミングについてもまったくの素人です。 ホスティングサーバの乗り換えを予定しています。 現在使っているホスティングサーバで提供されているsendmail2.cgiというcgiを公開しているHPで使っています。 移転先のサーバにはそのcgiは当然なくどうしようかと考え中です。 移転先のサーバでは、ネットに落ちている同じ名前のcgiを利用できたりするのでしょうか? 同じ名前でもまったく別物のcgiと考えていいのでしょうか? ちなみに、現在のサーバのプロバイダにcgiプログラムが欲しいと言ったら、断られ、もし提供したとしても perlのバージョンなどでうまく動くか分からないといわれました。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • オリジナルBBSを作るにあたって...

    近々自分でHPを開設するのですが、そこにBBSも設置したいと思ってます。 ネット上にあるフリーのCGIプログラムを使うのもいいんですが、 とりあえず自分で(C言語で)CGIで作成しようと考えてます。 そこで一つ問題があるのですが、BBSに登録されたデータをどこに保存するかどうか考えてます。 自分でもその方法について調べたところ、テキストファイルとかデータベースに 保存するツール等がありましたが、すべてLINUX、UNIX対応のものでした。 WebサーバのOSはWindowsなので、Windowsに対応しているツールを 使いたいのですが。何か支援ツールをご存知ないでしょうか?

    • ベストアンサー
    • CGI

専門家に質問してみよう