大阪府摂津市JR千里丘駅周辺密着情報!!

さくらインターネットのCRON設定を可能な限り簡単に解説したいさくらインターネットのCRON設定を可能な限り簡単に解説したい

[ Google Sitemap 利用への道 TOP ]

  知識不足であるため、単純に CRON 設定することができず、検索しまくったが解が得られず、さくらインターネットに E-mail したが 「サポート外」 で答えてもらえなかったために泣きながら考えた結果を報告。 ただし、知識人に訊けばもっと美しい回答が得られるはずなので、あくまでも緊急避難的な対処法ということで・・・。



CRON 設定ファイルで実行するCRON 設定ファイルで実行する

■ 2007/10/04追記 --- Special Thanks じんさん
  1. まずは 『さくらインターネット』 の 『サーバーコントロールパネル』 まで進む
  2. 画面右にある 『CRON設定ファイルの編集』 をクリック

  3. 表示された画面にある 『新規項目の追加』 をクリック

  4. 表示された画面は以下のようになっているものと思われる

  5. 実行するコマンド』 に以下を入力
    • /usr/local/bin/python /home/*****/www/sitemap_gen.py --config=/home/*****/www/config.xml
      • ***** は自分に割り当てられたディレクトリ名
      • 記述の /python /home/ で n と / の間に半角スペース( )を入れるのを忘れずに
    • E-mail を受け取りたくない(ページ最下部参照)場合はコマンドの最後に 1> /dev/null を追加
    /usr/local/bin/python /home/*****/www/sitemap_gen.py --config=/home/*****/www/config.xml 1> /dev/null
  6. 』 は必要に応じて入力
    • サイトマップを毎月更新するのであれば修正の必要なし
    • 決まった月にしか更新しない場合は、その月を入力
      • 5月に更新するのであれば、『5』 を入力
      • 1、3、5、7月に更新するのであれば、カンマ(,)区切りで『1,3,5,7』 を入力
  7. 』 も必要に応じて入力
    • サイトマップを毎日更新するのであれば修正の必要なし
    • 決まった日にしか更新しない場合は、その日を入力
      • 10日に更新するのであれば、『10』 を入力
      • 5、10、15、20日に更新するのであれば、カンマ(,)区切りで『5,10,15,20』 を入力
  8. 』 を入力
    • 10時に更新するのであれば、『10』 を入力
    • 朝の 10時と夜の 10時に更新するのであれば、カンマ(,)区切りで『10,22』 を入力
    • 2時間ごとに更新するのであれば(*/)を入れて『*/2』 を入力
  9. 』 を入力
    • 〇時 30分に更新するのであれば、『30』 を入力
    • 数分ごとに更新するのであれば(*/)を入れて『*/20』 と入力できるが、あまり頻度が多いと 『さくらインターネット』 から叱られるか、設定を削除されてしまうので注意が必要
  10. 曜日』 を指定
    • 毎週月曜日に更新するのであれば、『』 を選択
    • その他の曜日も指定するのであれば、隣に指定
  11. 入力が完了したら [送信する] ボタンをクリック
  12. 保存しました』 というメッセージが表示されれば成功
  13. 動作の確認


万が一、正常動作しない場合は以下を試してみると幸せになれるかもしれない。

実行ファイルで無理矢理実行実行ファイルで無理矢理実行

  1. シェルスクリプトを使って cron を実行してみる
  2. 単純には実行ファイル (実行権限を与えたテキストファイル) を作成して、それを CRON 設定で実行してみる。
  3. 以下からは、その手順を

実行ファイルの作成/アップロード実行ファイルの作成/アップロード

  1. まずは 『さくらインターネット』 の CRON 設定で受け付けてくれないコマンドをファイルに書く
  2. テキストエディタ(Notepad(メモ帳))を起動して以下の内容を記述 (コピペ)
  3. #!/bin/sh
    PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
    cd /home/*****/www/
    python sitemap_gen.py --config=config.xml
    /usr/local/bin/python sitemap_gen.py --config=config.xml
    • 2010/11/26 追記 サーバによってはpythonスクリプトを動かすのに/usr/local/bin/pythonとフルパスでコマンド指定しなければいけない
    • 赤い 2行はムニャムニャ言う呪文みたいなものなので何も考えずに記述
    • ***** の部分は自分が割り当てられたディレクトリ名を記述
  4. 記述が終わったら [ファイル(F)] → [名前を付けて保存(A)...] でファイル名を cron.sh とし、サイトのルートにでも保存する
  5. 2010/11/26 追記 サーバによっては改行コードで弾かれ not foundを返してくることが判明。
    • 改行のエンコードはLFにして保存すべし
    • ここまでくるとWindowsのメモ帳じゃ太刀打ちできないので素直に秀丸などをダウンロードするが吉
  6. そして FTP でアップロード
    • 注意!
    • 作成した cron.sh はバイナリでアップロードされてしまう危険性が高い
    • 使っているのが FFFTP なら [オプション(O)] → [環境設定(S)] で 「転送1」 のタブをクリック
    • [アスキーモードのファイル名(F)] の [追加(I)...] をクリックし、表示されるダイアログに *.sh と入力
    • で、 [OK] しておくが吉
  7. アップロードした cron.sh に実行権限を与える
    • cron.sh のパーミッション(属性)を 700 に変更 ← 重要!忘れる人が多い
      • 具体的な変更方法は FTP ソフトによって異なるので説明はパス
    • 念のため sitemap_gen.py のパーミッション(属性)も 700 に変更
      • もしかしたら必要ないかも

■ 2007/10/04 追記

2007/10/03 じんさんから頂いた報告
上述の方法では動作しなかったとの事。
つまり、『さくらインターネット』 であってもサーバが違えば動かないこともある。

ちなみに、じんさんの場合は TELNET で Command not found. のエラーが出たらしく、赤文字の 2行を削除すると TELNET では正常動作したが、CRON では NG という結果になったとのこと。

当方のサーバでは TELNET でも CRON でも何も問題なく動作しているので不思議。

で、実行ファイル (cron.sh) を作成して CRON 設定で実行するなどという面倒な手順を踏まなくても sitemap_gen.py を実行させる方法をじんさんが見つけてくれたので 『CRON 設定ファイルで実行する』 で紹介。


CRON 設定ファイルの編集CRON 設定ファイルの編集

  1. まずは 『さくらインターネット』 の 『サーバーコントロールパネル』 まで進む
  2. 画面右にある 『CRON設定ファイルの編集』 をクリック

  3. 表示された画面にある 『新規項目の追加』 をクリック

  4. 表示された画面は以下のようになっているものと思われる

  5. 実行するコマンド』 に以下を入力
  6. 』 は必要に応じて入力
    • サイトマップを毎月更新するのであれば修正の必要なし
    • 決まった月にしか更新しない場合は、その月を入力
      • 5月に更新するのであれば、『5』 を入力
      • 1、3、5、7月に更新するのであれば、カンマ(,)区切りで『1,3,5,7』 を入力
  7. 』 も必要に応じて入力
    • サイトマップを毎日更新するのであれば修正の必要なし
    • 決まった日にしか更新しない場合は、その日を入力
      • 10日に更新するのであれば、『10』 を入力
      • 5、10、15、20日に更新するのであれば、カンマ(,)区切りで『5,10,15,20』 を入力
  8. 』 を入力
    • 10時に更新するのであれば、『10』 を入力
    • 朝の 10時と夜の 10時に更新するのであれば、カンマ(,)区切りで『10,22』 を入力
    • 2時間ごとに更新するのであれば(*/)を入れて『*/2』 を入力
  9. 』 を入力
    • 〇時 30分に更新するのであれば、『30』 を入力
    • 数分ごとに更新するのであれば(*/)を入れて『*/20』 と入力できるが、あまり頻度が多いと 『さくらインターネット』 から叱られるか、設定を削除されてしまうので注意が必要
  10. 曜日』 を指定
    • 毎週月曜日に更新するのであれば、『』 を選択
    • その他の曜日も指定するのであれば、隣に指定
  11. 入力が完了したら [送信する] ボタンをクリック
  12. 保存しました』 というメッセージが表示されれば成功

動作の確認動作の確認

  1. 大方の作業は終わりだが、上記 『CRON 設定ファイルの編集』 で指定した時間まで正常に動作するか確認できないので
  2. 『実行するコマンド』 部分をクリックして 『CRON 設定ファイルの編集』 を開き

  3. 実行する日時と分を 5分後くらいにし、じっと 5分間くらい待ってみる
  4. FTP でウェブサーバに接続し、指定した時間に sitemap.xml.gz が作成されている(書き替わっている)か見たりしてみる
  5. 正常に動作していることが確認できれば実行日時と分を元に戻して 「あ〜良かった」 と深くため息をついてコーヒーなんか飲んでみたりする

E-mail の受信E-mail の受信

 (さくらインターネットの場合)
  1. CRON が sitemap_gen.py を実行すると、
  2. 差出人 : Cron Daemon から
    件名 : Cron <*****@*****> /home/*****/www/cron.sh
    という E-mail が postmaster 宛に送信されてくる
  3. 普段から postmaster 宛の E-mail を受信している人であれば問題ないが、受信していない場合はメールボックスにゴソゴソと溜まっていくので注意が必要
  4. E-mail を postmaster に送りたくない場合はコマンドの最後に 1> /dev/null を追加


  • これで 『さくらインターネットのCRON設定を可能な限り簡単に解説したい』 は終わり
  • 本当にお疲れ様でございました
  • 疲れきってしまった人は気晴らしに Flash の簡単なゲームでも

[ Google Sitemap 利用への道 TOP ]