![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
「ブログ記事をmixi日記へ自動的に投稿する為のperl(cgi)プログラム」を
コアサーバーに設置したいと考えているのですが、cronの設定で困っています。
初めてcronを使うためどこでつまずいているのか分かりません。
どんなことでも構いませんので、ご教授よろしくお願いします。
index.cgiの1行目の記述は #!/usr/bin/perlとして
/virtual/マイアカウント/mixid/index.cgi におきました。
(mixidファイルとindex.cgiの属性755)
また、cron.shを文字コードs-jis、改行コードLFで保存して
public_htmlと同じ階層におきました。
/virtual/マイアカウント/cron.sh
(cron.shの属性644)
cron.shの記述は以下のとおりです。
#!/bin/sh
#PERL
/usr/local/bin/perl /virtual/マイアカウント/mixid/index.cgi
exit
cronジョブの編集画面では、毎時0分に動作させようと
0*** /virtual/マイアカウント/cron.sh と設定しています。
今、上記のような状態で、mixiに投稿できずに
下記のエラーメールが送られてきます。
Content-type: text/html
<html>
<head>
<title></title>
</head>
<body>
OK</body>
</html>
間違っている箇所がありましたら、ご指摘をよろしくお願い致します。
コアサーバー各種パス
http://www.coreserver.jp/help/index.php/path/
「ブログ記事をmixi日記へ自動的に投稿する為のperl(cgi)プログラム」
http://pct.unifas.co.jp/%E3%83%96%E3%83%AD%E3%82 …
No.2ベストアンサー
- 回答日時:
○CGIは、実行すると、HTTPのヘッダ+本体データ を標準出力に出力する、という仕様。
○cronは実行しているプロセスから標準出力に出力があるとその内容をオーナーにメールで送るという仕様
ということで、
> 下記のエラーメールが送られてきます。
これは「エラーメール」ではありません。「正常な動作」によるメールです。
少なくとも、質問文にある内容で明かな間違いはありません。ちゃんとcronが動作しperlのスクリプトが実行されています。
なので、
○メールが来るのは、CGIとしてHTMLを出力するプログラムをそのまま使っているため。
普通は出力を抑制するとか、リダイレクトするとかする。必要なログは別ファイルに残したりする
○サーバー上で使うことを前提にしているCGIをローカル環境で動作させて、期待通り動くかどうかは、スクリプトの作り方次第。そもそも無理なケースもある。
実行ユーザーとその権限も関係するかもしれない
○cronで実行するときは環境変数はすべて未定義の状態になる。環境変数に依存すること(PATHとかHOMEとか)をやっていると、期待通りに動かない。
といったあたりが疑われます。
kmeeさんの回答を頂いて、さらに下記のメールも届くようになったので、設定は間違ってないのだと実感できました。
IDも合ってますし…CGIはさっぱり分からないので諦めます。
本当にありがとうございました。
mixiユーザーIDを指定してください
Content-type: text/html
<html>
<head>
<title></title>
</head>
<body>
OK</body>
</html>
No.1
- 回答日時:
>(cron.shの属性644)
・cronで動かすスクリプトに実行権がないのはなぜ?
・index.cgiを直接cronで動かさずにcron.sh経由で動かすのは何故?
>/usr/local/bin/perl /virtual/マイアカウント/mixid/index.cgi
・index.cgiに対して実行権を付けているのに何故/usr/local/bin/perlを付ける?
>index.cgiの1行目の記述は #!/usr/bin/perlとして
>/usr/local/bin/perl /virtual/マイアカウント/mixid/index.cgi
さてPerlがあるのは
/usr/bin/perl
/usr/local/bin/perl
さてどっち?
質問者はもうcron以前の問題でいろいろ間違っているぞ。
cronの使い方以前の問題。
この回答への補足
ありがとうございます!!
>・cronで動かすスクリプトに実行権がないのはなぜ?
他の方が.shを644で設定して動いたとのことでしたので644にしました。
755や777も試したのですがエラーが出ます。
/virtual/マイアカウント/cron1.sh: cannot execute binary file
>・index.cgiを直接cronで動かさずにcron.sh経由で動かすのは何故?
CORESERVERは、cronジョブで、直接cgiを動かせないようです。
サーバーの仕様説明に
※ 「分 時 日 月 曜日」で指定した時間に「/virtual/マイアカウント/~」で指定したシェルスクリプト(/bin/sh)を実行します。とあったので、.shを置いています。
実際に直接index.cgiを指定したのですがエラーすら吐き出さず…
>/usr/bin/perl /usr/local/bin/perl さてどっち?
サーバーの仕様説明に perl : /usr/bin/perl、/usr/local/bin/perl
と、あったのでどちらでも良いのかと気にしておりませんでした。
ご指摘どおり/usr/bin/perlで揃えて試して/usr/local/bin/perlで揃えて試したのですが、エラーが出ます。
>index.cgiに対して実行権を付けているのに何故/usr/local/bin/perlを付ける?
シェルスクリプトの例で以下のように記載があったので末尾をindex.cgiに変更して記述しました。
ここがおかしいのでしょうか?
-----例------
#!/bin/sh
#PERL
/usr/local/bin/perl /virtual/マイアカウント/cron_exe.pl
exit
----例終了----
index.cgiを644に変更しましたが、エラーが出ます。
index.cgiのあるディレクトリは777です。
どれを試しても/virtual/マイアカウント/cron1.sh: cannot execute binary file
となりました。
今、cron1.shを644に直しても/virtual/マイアカウント/cron1.sh: cannot execute binary file
の状態です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ライブ・コンサート・クラブ あなたの気になる「名ばかり~」はどんなものですか 7 2023/03/08 19:09
- 船舶・クルーズ Windows10のエクスプローラにて。 1 2022/10/10 20:11
- その他(ネットショッピング・通販・ECサイト) 骨伝導ヘッドセットで この二つは値段が違うだけでは同じですか? 1 2023/02/13 19:13
- デスクトップパソコン 自作PC 4 2022/07/21 21:16
- マウス・キーボード Pc切替器が動作しません。理教えてください。よろしくお願いします。 4 2023/05/10 15:43
- 仮想通貨(暗号通貨) 仮想通貨【アプトス】もうすごく上がる可能性は高い? 10万円を1億円い増やすyoutube動画 3 2022/10/23 21:49
- タレント・お笑い芸人 相席スタート山添ってYouTube出てるらしいけど 3 2023/06/08 11:54
- 政治 大阪府でギャンブル依存症対策の条例が成立……そりゃ、まぁ、良いんですけどね、パチンコはどうなんだろ 8 2022/10/27 16:02
- サバイバルゲーム このタイプの差し込み口ってなんの種類か分かりますか? 3 2022/07/29 15:32
- ZOZOTOWN このタイプの差し込み口ってなんの種類か分かりますか? 2 2022/07/29 15:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
sudoの動作について
-
bashでシングルクォート内の変...
-
cgiのcron設定について(コアサ...
-
シンボリックリンクの作成
-
コマンドが実行できない ttserv...
-
cronの@rebootでのdateコマンド...
-
cronでシェルスクリプト実行時...
-
SONYの音楽ソフト「x-アプリ」...
-
tar.bz2ファイルのインストール...
-
TOPコマンドで表示するCPU使用...
-
【Gmailコマンド】1年以上前の...
-
shutdownコマンド実行の残り時...
-
Powershell エクセル検索 完全...
-
awkとsedですが、これが何をし...
-
ワードでノートみたいに
-
LinuxのOSノートパソコンで外つ...
-
FTP接続時の文字化け(CentOS6.5)
-
数字を複数回繰り返す正規表現...
-
UNIX コマンドにおける # や円...
-
emacsでCtrl+zを押してサスペン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スクリプトのエラー「unexpecte...
-
bashでシングルクォート内の変...
-
シェルスクリプト実行で”そのよ...
-
Linux 月を英語表示したい
-
ロケールをutf8からsjisにする...
-
crontabでsql/plusの起動
-
apachectl start command not f...
-
自動パスワード入力でscpするス...
-
Linuxでシェルスクリプトがフル...
-
cron(javaプログラム)からroot...
-
シェルスクリプトで$RANDOMの値...
-
Linuxで自作バッチファイルの置...
-
cronの@rebootでのdateコマンド...
-
ログイン時にエラーメッセージ...
-
sudoでNOPASSWDとしてもパスワ...
-
bad interpreterで、シェルが使...
-
Cronジョブの終了時刻を簡単に...
-
mekeコマンド
-
/usr/local/bin/rubyを実行する...
-
Bシェルで文字列が日付として正...
おすすめ情報