Web Tech Log by 1KB

Icon

Web開発、Webデザイン、SEO、携帯コンテンツなどWebにまつわるテクノロジーを追っかけるブログ。旧名「Web屋に復帰した人間のリハビリ日記」

CakePHP 1.2 シェル機能でバッチ処理やコマンドをサーバー側で実行する

CakePHPは自身のフレームワークを活用したコードをサーバー側で実行するシェル機能があります。ブラウザのHTTPリクエストに頼らず実行でき、バッチ処理などに活用できます。忘れないうちにメモっておこう。

/path/to/app/vendors/shells/batch.php
にファイルを作る。「batch.php」としたが名前は何でも良い。

<?php
class BatchShell extends Shell {
    var $uses = array('Model');//モデルを使用する場合指定しておく
    function main() {
        //ここにコードを書く
    }
}
?>

デフォルトでは、main()メソッドが実行されます。

次にシェルスクリプトを用意。
/path/to/sh/batch.sh

#!/bin/sh
/usr/local/bin/php /path/to/cake/console/cake.php batch -app /path/to/app

シェルスクリプトはあらかじめ実行権限を付けておく。
スクリプト中のパスはサーバーに合わせて適時変更します。

あとはLinuxの場合、cronで実行するように設定する。
スクリプト中の以下のコマンドを直接cronで設定しても動くと思う。

/usr/local/bin/php /path/to/cake/console/cake.php batch -app /path/to/app

参考

CentOS で複数IPを設定する

知らなかったのでメモ。

まあ表題の通りなんですが、LinuxServer に複数のIPアドレスを設定したい場合があります。通常は、静的にIPアドレスを設定する場合は、

/etc/sysconfig/network-scripts/ifcfg-eth0

のファイルを編集すればよいのです。では2つ目のIPを設定する場合は、どうするかというと、

/etc/sysconfig/network-scripts/ifcfg-eth0:1

を作成して編集すればOKのようです。めんどくさいのでコピーしてあげましょう。

# cp -p ifcfg-eth0  ifcfg-eth0:1

あとはviなどで編集すればいいでしょう

# vi /etc/sysconfig/network-scripts/ifcfg-eth0:1

ファイルの内容は以下のような感じ

DEVICE=eth0:1
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.XX.XX
NETMASK=255.255.255.0

じゃあ3つ目はどうするかというと、

/etc/sysconfig/network-scripts/ifcfg-eth0:2

って感じのようです

固定ページ

킹ēǂ݂uOp[c