cssでサイズを調整したり位置を合わせたりするのがだんだん面倒になり、結局、方向幕っぽい画像を作成するツールを作ってみた。
方向幕メーカー - http://houkoumaku.usoinfo.info/
ノーサポートですので自己責任でどうぞ。
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 |
% php -r "phpinfo();" | grep XSLenabledになっていない時は、libxsltをインストールして、--with-xsl を付けてPHPをビルドし直すなどする。CentOSなら、libxsltはyumでインストールできる。
XSL => enabled
EXSLT => enabled
# pear channel-discover pear.phpdoc.orgインストールできたら、コマンドを叩くだけ。
# pear install phpdoc/phpDocumentor
# yum install graphviz
% phpdoc -d src -t docs \-d にソースファイルのあるディレクトリ、-t にドキュメントを生成するディレクトリを指定。--extensions は、解析するソースファイルの拡張子を設定し、ソースがUTF-8以外の文字コードで書かれていれば --encoding を指定。テンプレートの種類を変えたければ --template で指定。
--extensions php,phps --encoding EUC-JP \
--ignore-symlinks --title "MyPHPAPIDocument"
--template zend
mysql> show slave status\Gで、Master_Log_FileとExec_Master_Log_Posを見る。ここまでマスターのバイナリログの実行が終わっているので、一旦スレーブをリセットして、ここから再開させる。
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: ***.***.***.***
Master_User: ********
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000009
:(略)
Last_Errno: 1872
Last_Error: Slave failed to initialize relay log info structure from the repository
Skip_Counter: 0
Exec_Master_Log_Pos: 4840135
:(略)
1 row in set (0.00 sec)
RESET SLAVE;これで、スレーブが再開するか確認。
CHANGE MASTER TO
MASTER_HOST='***.***.***.***',
MASTER_USER='********',
MASTER_PASSWORD='********',
MASTER_LOG_FILE='mysql-bin.000009', // Master_Log_Fileのファイル名をセット
MASTER_LOG_POS=4840135; // Exec_Master_Log_Posの値をセット
START SLAVE;
% su
# rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
...
# vi /etc/yum.repos.d/epel.repo
...
enabled=0 (デフォルトではepelを見に行かないようにしておく。この辺はお好みで。)
...
# yum install --enablerepo=epel munin munin-node
...(いろいろたくさんパッケージが入る)
# service munin-node start (とりあえず起動)
Alias /munin /var/www/html/muninこんな感じ。
<Directory "/var/www/html/munin">
AuthUserFile ***passwdfile_path***
AuthName ByPassword
AuthType Basic
Require valid-user
</Directory>
ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/apache_accesses次に、muninがApacheからserver-statusを取れるように、Apacheを設定。httpd.confにでも、こんな感じの設定を追加。
ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/apache_processes
ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/apache_volume
# vi httpd.confApacheを再起動したら、コマンドラインで動作をテストしてみる。
...
LoadModule status_module modules/mod_status.so (もしコメントアウトされていれば有効化)
...
<Location /server-status>
AddDefaultCharset EUC-JP
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
ExtendedStatus On
# munin-run apache_accessesvalue が U になっている時は、うまくserver-statusが取れてないと思われるので、'curl http://127.0.0.1/server-status' などと手動で実行してみて、apacheの設定が正しいか確認しよう。値が取れていれば、munin-node を再起動して、しばらくするとmuninのグラフに見えるはず。
accesses80.value 0
# yum install perl-DBD-MySQL
ln -s /usr/share/munin/plugins/mysql_bytes /etc/munin/plugins/監視されるMySQL側には、muninでアクセスするアカウントを作成(既存のアカウントを使うのであれば不要)。
ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/
ln -s /usr/share/munin/plugins/mysql_slowqueries /etc/munin/plugins/
ln -s /usr/share/munin/plugins/mysql_threads /etc/munin/plugins/
(ここまでの4つと、ここから下は、オプションで必要な設定が異なるらしい)
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_commands
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_innodb_bpool
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_innodb_io
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_innodb_log
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_innodb_tnx
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_select_types
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_table_locks
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_connections
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_slow
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_network_traffic
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_qcache
ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_qcache_mem
% mysql -h 127.0.0.1 -u root -pそして、munin-nodeがmysqlにアクセスできるように /etc/munin/plugin-conf.d/munin-node に設定を追加。
...
mysql> GRANT ALL PRIVILEGES ON *.* TO 'munin'@'127.0.0.1' IDENTIFIED BY 'mypassword!!' WITH GRANT OPTION;
# vi /etc/munin/plugin-conf.d/munin-node上2行は mysql_bytes から mysql_threads まで、下3行は mysql_ のプラグインに必要な設定のようで、両方必要のようだ。
...(以下を追加)
[mysql*]
env.mysqladmin /usr/local/mysql/bin/mysqladmin (mysqladminへのパスを書く)
env.mysqlopts -u munin -pmypassword!! -h 127.0.0.1 --port=3306 (さっき設定したアカウントまたは既存のアカウント)
env.mysqlconnection DBI:mysql:mysql;host=127.0.0.1;port=3306
env.mysqluser munin
env.mysqlpassword mypassword!!
# munin-run mysql_queries追補
Warning: Using a password on the command line interface can be insecure.
delete.value 373
insert.value 3025
replace.value 0
select.value 7018
update.value 177
cache_hits.value 0
# munin-run mysql_commands
Com_delete.value 373
Com_insert.value 3025
Com_insert_select.value 0
Com_load.value 0
Com_replace.value 0
Com_replace_select.value 0
Com_select.value 7018
Com_update.value 177
Com_update_multi.value 0
# /usr/share/munin/plugins/mysql_これでスキップされるはずだ。
(1084行目あたり)
...
'TRANSACTIONS' => \&parse_transactions,
'BACKGROUND THREAD' => \&skip,
'INDIVIDUAL BUFFER POOL INFO' => \&skip,
);
...
# service munin-node restart
# chkconfig --add munin-node
# chkconfig munin-node on
ByDHalt デバイス接続状態を検出してWindowsを制御
function Unix_GetPidArray()実行結果例
{
$ret = array();
$cmd = "/bin/ps -e -o pid,args";
$fp = popen($cmd, "r");
while( ($line = fgets($fp)) != false ){
$line = ltrim($line);
$pos = strpos($line, " ");
$pid = intval(substr($line, 0, $pos));
$args = substr($line, $pos+1);
if( $pid <= 0 ) continue;
$ret[] = array(
'pid' => $pid,
'args' => $args,
);
}
fclose($fp);
return $ret;
}
$r = Unix_GetPidArray();ps -eを実行した結果をバラして格納しているだけである。/bin/ps -e -o pid,args を実行してみて、[プロセスID]半角スペース[コマンド....]の書式になればそのまま使用可能。違ったときは環境に合わせて$cmdを調整。
echo var_dump($r);
--
Array
(
[0] => Array
(
[pid] => 1
[args] => /sbin/init
)
[1] => Array
(
[pid] => 2
[args] => [kthreadd]
)
[2] => Array
(
[pid] => 3
[args] => [migration/0]
)
[3] => Array
(
[pid] => 4
[args] => [ksoftirqd/0]
)
...略
function Unix_IsPidExisted($pid)
{
$ret = false;
$cmd = "/bin/ps -e -o pid";
$fp = popen($cmd, "r");
while( ($line = fgets($fp)) != false ){
if( intval(trim($line)) === $pid ){
$ret = true;
break;
}
}
fclose($fp);
return $ret;
}
function Unix_GetPidStringMatched($str)
{
$ret = array();
$cmd = "/bin/ps -e -o pid,args";
$fp = popen($cmd, "r");
while( ($line = fgets($fp)) != false ){
if( strpos($line, $str) === FALSE ) continue;
$ret[] = intval(substr(ltrim($line), 0, strpos(ltrim($line), " ")));
}
fclose($fp);
return $ret;
}
/*
実行例:
$ret = Unix_IsPidExisted(4566);
// PID 4566 が存在すれば true が返る
$ret = Unix_GetPidStringMatched('httpd');
// args に httpd を含むPIDを列挙した配列が返る
*/
▼レンタルサーバー・VPS比較表を見る▼