PowerCMS™

12月12日東京、12月19日大阪にて PowerCMS X 製品発表会を開催いたします。大阪会場はお席に余裕がございます。

PowerCMS ブログ

ホーム > PowerCMS ブログ > Copy2Publicの同期処理を自動化するには

2018年09月20日

Copy2Publicの同期処理を自動化するには

Copy2Publicの同期処理指定は管理画面上で指定するもの

Copy2Public プラグインは、弊社製品 PowerCMS の中でも、問い合わせの多い部類に入ります。
このプラグインの仕様については、すでに何本か記事になっていますので、そちらをご覧ください。

Copy2Public の基本は管理画面上の操作です。

管理画面上で該当ディレクトリを一覧し、対象を指定したあとで、即時同期もしくは同期の予約を行います。
同期が予約された場合は、次に run-periodic-tasks が実行されるときに同期処理が行われます。

管理画面操作を経ずに定期的に同期を実行したい

よく来る質問に「同期の操作を行わせたくないので、自動で同期するようにできないか」というものがあります。

上記説明のように、同期の実行は run-periodic-tasks で定期実行されますので、同期対象の予約のみ自動化することが出来るならば、一連の処理の自動化が可能になります。

以下のスクリプトを実行することで、同期予約の作成が行えます。

reserve-copy2public

./tools/reserve-copy2public --stage or --public [--delay=] [--class=<*|website|blog>] [--blog_id=] [--dry-run] [--mailto=sample@example.com,sample2@example.com]
必須指定:

    --stage   ステージ同期を予約する
    --public  公開同期を予約する
      どちらかを指定する必要があります。

オプション指定:

    --class=<*|website|blog>  同期予約対象にウェブサイト、ブログを指定する
                                デフォルト値: * (両方が対象)
    --delay=<N>                  同期予約実行までの待ち秒数
                                デフォルト値: 30 (30秒後に実行)
    --blog_id=<N>                同期予約する対象のブログID
                                デフォルト値: なし
    --dry-run                 実際に同期予約を行わずに、対象を画面出力する
    --mailto                  同期の完了をメール通知する カンマ区切りで複数メールアドレスの指定可能

Copy2Public はオプションプラグインとなっております。(製品パッケージのデフォルト状態ではインストールされておらず、必要によりインストールを行うもの)
以下 Copy2Public に関連するファイルですが、いずれも製品パッケージの options ディレクトリ以下に存在します。

options/plugins/Copy2Public        プラグイン本体です。
               /Abs2Rel            HTML内部のリンクを相対指定に変更するプラグインです。
       /tools/reserve-copy2public  タスク実行で同期予約を行うためのスクリプトです。
             /do-synchronize       FTP/SFTP転送されたファイルを解凍・配置する為のスクリプトです。
                                     外部転送利用時に転送先サーバー上で定期実行します。
             /sftp-test.pl         外部転送でSFTP接続を利用する時のテストスクリプトです。

同期処理を定期実行タスクとして登録する

run-periodic-tasks などと同じく、MTの設置ディレクトリから「./tools/reserve-copy2public」の様に実行するよう登録します。

実行時点に存在している、ファイル・ディレクトリが同期対象として登録されます。
公開キュー処理などでスケジュール公開するファイルは、同期予約時点に存在していないファイルは、実際の同期処理時に存在していても同期は行われません。
ファイルの生成処理後に同期予約が実行されるよう、スクリプトの実行順を調整するなどしてください。


カテゴリー
PowerCMS 4
PowerCMS 5
プラグイン