MTでcronを利用した指定日投稿を試してみました(coreserver)

MTでは投稿したエントリーを「公開(即時)、未公開、指定日(日時指定)」と調節する事が出来ます。
その中で「指定日投稿」について、しっかりと試してなかったのでやってみる事にしました。
先日、ふと「そういえば指定日投稿出来てたっけ?」と思いつき、やってみたら出来なかったこともあり。

私の場合、そう頻繁に使う事はないのですが、こうした「ふと使う時」のために、整えておくと良いですね。
coreserverで試してますが、xreaサーバーでも大丈夫かと思います。

  • cronを利用する場合

cronを利用するためのシェルスクリプトの作成

cronのためのシェルスクリプトを作成します。

#!/bin/sh
cd /virtual/*****/public_html/mt/
/usr/bin/perl ./tools/run-periodic-tasks
echo
exit

改行コードの調節も出来るテキストエディタに上記を記述して、名前つけて保存します。
(■TeraPadなど)

  • 改行コードは「LF」にします。
  • *****の部分はサーバ・アカウントです。
  • public_html/mt/ の箇所は、利用のMTまでのパスです。
  • 拡張子は「.sh」です。

試しに「cron_autoentry.sh」と名前をつけてみました。
そしてこのファイルを、public_htmlの上の階層に保存します。

cronジョブの設定

コントロールパネルに入って「cronジョブ」に行きます。
先程上げたファイルまでのパスを指定します。
public_htmlの上の階層に上げた際には、ファイル名の記述になります。
「cron_autoentry.sh」と記入。
分「0」、時「*/6」、日「*」、月「*」、曜日「*」←6時間毎に動かす指定例
サーバーへの負荷を考慮して、あまり短時間の指定は行わないようにします。

coreserverのcronページにも解説が載ってますが、
「cron_autoentry.sh >/dev/null 2>&1」と記述する事で、cron動作通知メールを届かないようにする事が出来ます。
ここでは「cron_autoentry.sh >/dev/null」と書いて、エラーが起これば通知メールが届く(予定)にしておく事にします。

あとは、指定日投稿エントリーを用意して反映されてるかどうかをテスト確認しましょう。
公開は「cronの動作が回って来てから」になるので、必ずしもMTで指定した日時になるワケではありません。
なので、cronが回って来た日時に合わせたい場合には「日時指定プラグイン」を利用してみましょう。
ブログ記事/ウェブページの日付を公開日時に自動変更するプラグイン(MT4.1/MTOS用) - The blog of H.Fujimoto

ログフィードを利用

MTには、どうやらログフィードの取得時にもタスクを実行してくれる機能があるようです。
システム管理画面⇒ブログの管理画面⇒右側のショートカットメニューにある「ログ」と辿ったところの右側にログフィードはあります。

通常、ログ・フィードを取得した際に、スケジュールタスクを実行します。ログ・フィードを取得してもスケジュールタスクを実行しないようにするには、次の内容を環境設定ファイル mt-config.cgi に追記してください。
ActivityFeedsRunTasks 0

cronが利用出来ない場合

cronが利用出来ない場合に対応した方法もあるようです。参考にどうぞ。
ほぼ指定日投稿(JavaScript版V2.10) - The blog of H.Fujimoto

あとがき

cronのシェルスクリプトについて判らなかったので、公開されてる情報がとても勉強になりました。
出来て良かったですヾ(´・ω・)ノ゙

[参考記事]

MT4 で日時指定の公開設定ができない場合 CRON を動かす(xrea) - Web備忘録
指定日投稿や公開キュー等のスケジュール処理の設定 | Movable Type 4 ドキュメント
Movable Type 3.3 マニュアル - スケジュール・タスク

▲ to Top

トラックバック(0)

▲ to Top