- ベストアンサー
XREAサーバーでのCRONTAB設定とシェルスクリプト記述方法
- XREAサーバーでのCRONTAB設定とシェルスクリプト記述方法について教えてください。
- XREAサーバーの管理メニューからCRONジョブを選択し、CRONTABの設定とシェルスクリプトの記述を行うことができます。
- 具体的な方法がわからず困っているので、詳細な手順や注意点を教えていただけると助かります。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>度々すみません。 >CRONジョブの設定は間違ってないと思いまが、何度か保存しなおし >ましたがうまく動作しません。。 話が見えたようです。 XREA管理画面でのCRON設定で直接perlを動かすことは できません。 そこには、まずshellを指定します。 例えば、/virtual/xxxxx/cron-1.sh 中身は ----------------------------------------------- #!/bin/sh #PERL /usr/local/bin/perl /virtual/xxxxx/mi_mlpost.pl exit ----------------------------------------------- このようにshellからperlのプログラムを動かします。 時間の指定方法は 0 */1 * * * で間違いありません。 試してみました。
その他の回答 (4)
- fire--
- ベストアンサー率49% (146/293)
>1時間おきにジョブを実行させる設定にしましたが >残念ながらメール投稿機能が動作しません。 手動で動いて、cronで動かないとすると、 パーミッションの問題かもしれません。 スクリプトで書き込むファイルがあるディレクトリーの パーミッションは777になってますか。
補足
度々すみません。 CRONジョブの設定は間違ってないと思いまが、何度か保存しなおし ましたがうまく動作しません。。 現在、***.pl=mi_mlpost.plはセキュリティ上の関係で ホームディレクトリの上の階層に設置してあります。 mi_mlpost.pl内にメールアカウントとパスワードが記載 されてるので掲示板作者から推奨された場所に設置して あります。 FTP転送はFFFTPを用いておりますがディレクトリ(virtual/xxxxx) のパーミッションがどうなっているか確認できません。 上位ディレクトリ(virtual)まで移動できないからです。 /virtual/xxxxx/public_html | +mi_mlpost.pl(700)←作者推奨パーミッション 一時的にmi_mlpost.plを/virtual/xxxxx/public_html以下に設置 する事も可能ですから試してみようと思います。 結果報告はお礼の箇所にてご連絡します。 他に心あたりがあればアドバイス願います。
- fire--
- ベストアンサー率49% (146/293)
>実は***.plはメールによる掲示板への投稿スクリプト >(メーリングリスト機能)でして、 これは掲示板へ投稿するだけですか。 それとも投稿されたものを更にメール発信するのでしょうか。 前者ならば考え方を変えてcronを使わなくても良いかもしれません。 つまりcronで取り込むのではなく、webから掲示板へのアクセスがあったら、その最初に取り込みの処理を入れてしまえば良いのではないでしょうか。 後者については参考URLが使えるかもしれません。
補足
さらなるご協力ありがとうございます。 >これは掲示板へ投稿するだけですか。 はい***.plはメールにより掲示板に投稿するだけのスクリプトです(メール投稿機能) >それとも投稿されたものを更にメール発信するのでしょうか。 掲示板にはこの機能もありますが、***.plとは全く無関係で他のCGIが行ってくれます (メール配信機能) 下記掲示板の設置を試みてますので参照していただけたらありがたいです。 http://www.megumi-island.net/cgi.html#bbs 1時間おきにジョブを実行させる設定にしましたが 残念ながらメール投稿機能が動作しません。 bash-2.05$ ./***.pl(リターン)で 手動では問題なく実行されます。
- fire--
- ベストアンサー率49% (146/293)
> 本題ですが例えば1時間おきにジョブを実行させるには > > CRONジョブの編集画面で設定0の箇所は下記のように入力して > > 分 時 日 月 曜日 > 0 */1 * * * > > /virtual/xxxxx/(空欄)に***.plを入力して保存すればいいのですね? そういう事です。 > > それと一番下の「シェルスクリプトの例」は空欄でよいですか? 例が入っていると思いますので、そのままにして おけば良いです。わざわざ空欄にする必要もありません。
補足
よくわかりました。これで良回答とさせていただきますが、 実は***.plはメールによる掲示板への投稿スクリプト(メーリングリスト機能)でして、 XREAの仕様により1時間が最短ですから掲示板に反映されるのが最悪1時間後 というのは遅いのでなんとか5分間隔程度で実行できるようにできないでしょうか? これはXREAにも要望してみます。
- fire--
- ベストアンサー率49% (146/293)
XREA管理画面の一部を以下に引用しました。 書き方は設定画面に、ken2005さんが書いたとおり 分 時 日 月 曜日 の下に */5 * * * * を入れれば良いのでしょうが、要注意です。 実行は1時間に1回までと書いてありますので、 5分おきにするとチェックがかかって、最悪アカウント停止でしょう。 わたしは下記のような感じで毎日1回の処理を流して います。 ================================================= CRONジョブの編集(xxxxx) 設定0 分 時 日 月 曜日 50 6 * * * <上記に実行時を指定> /virtual/xxxxx/public_html/php/cron_1.sh <上記に実行したいものを指定> # 「分 時 日 月 曜日」で指定した時間に「/virtual/xxxxx/~」で指定したシェルスクリプト(/bin/sh)を実行します。 # ジョブの間隔は最短で1時間に1回とさせて頂いております。 ==================================================
補足
早速の回答ありがとうございました。 まずは質問内でのフルパス表示が間違ってました。 XREAですから/virtual/xxxxx/public_htmlがホームディレクトリになります。 本題ですが例えば1時間おきにジョブを実行させるには CRONジョブの編集画面で設定0の箇所は下記のように入力して 分 時 日 月 曜日 0 */1 * * * /virtual/xxxxx/(空欄)に***.plを入力して保存すればいいのですね? それと一番下の「シェルスクリプトの例」は空欄でよいですか?
お礼
おかげさまで無事、perlスクリプトの自動実行が正常に動作しました。 XREAの仕様で現在は1時間おきの実行が最短です。 メールによる投稿内容が掲示板に反映される時刻は 12:00 13:00 14:00とピッタリです。 希望は5分おきに実行したかったのですが、メーリングリストは大量メール(スパムメール等)に発展するおそれがあり、サーバーに負荷がかかる為かそのような仕様になっているのだと思います。 一応、個人認証による会員制の掲示板なのでそのような心配はないので改善要望をXREAにだしておきました。 最後までアドバイスしていただいたfire--さんに感謝申し上げます。
補足
>XREA管理画面でのCRON設定で直接perlを動かすことは >できません。 そうでしたか! 下記のようなスクリプト(cron1.sh)を秀丸エディタで作成し 改行コード「LF」で保存し、/virtual/xxxxxにアスキーモードにて アップロードしました。cron1.shのパーミッションは705にしてあります。 ----------------------------------------------- #!/bin/sh #PERL /usr/local/bin/perl /virtual/xxxxx/mi_mlpost.pl exit ----------------------------------------------- CRONジョブの編集で /virtual/xxxxx/[ ]欄にはcron1.shを入力後保存しました。 これで1時間後にスクリプトが自動実行できるか確認してみます。 私も先が見えてきました。ありがとうございました。