« 2008年2月 | トップページ | 2008年4月 »

2008年3月

2008-03-31

やる夫がSCSIハードディスクを増設するようです。

SCSIハードディスク

060718dell_a_3 赤丸のところに差し込むことができるやつね・・・。追加作業のメモを書きます。













ハードディスクドライブの設置

一旦サーバの電源を落とす必要があります。

# sync
# /sbin/shutdown -h now

ハードディスクドライブを設置し、開発機の電源をONします。新たに追加した、ハードディスクドライブのランプが点灯している筈。ランプが点灯していれば、特に問題ないですが・・・。念のため確認手順を以下に記します。

# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: MAXTOR   Model: ATLAS15K2_36SCA  Rev: JNZ6
  Type:   Direct-Access                    ANSI SCSI revision: 03
Host: scsi0 Channel: 00 Id: 01 Lun: 00
  Vendor: SEAGATE  Model: ST3146854LC      Rev: D404
  Type:   Direct-Access                    ANSI SCSI revision: 03
Host: scsi0 Channel: 00 Id: 06 Lun: 00
  Vendor: PE/PV    Model: 1×2 SCSI BP      Rev: 1.0
  Type:   Processor                        ANSI SCSI revision: 02

SEAGATE Modelが確認される筈。新たに設置したハードディスクが認識されていることが分かります。
実際に設置したハードディスクにも同じ名前が記されています。ちなみに一番上は、OSが積まれているハードディスクです。

sdaで検索すると、上記の標準出力が得られる筈。ここでも、SEAGATE Model(ハードディスクメーカによって違う)が確認されます。 sda、sdbの表記が確認されますが、今回対象なのは、sdbとなります。

# dmesg | less
/sda
SCSI device sda: 71132959 512-byte hdwr sectors (36420 MB)
SCSI device sda: drive cache: write through
sda: sda1 sda2 sda3 sda4 < sda5 >
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
  Vendor: SEAGATE   Model: ST3146854LC       Rev: D404
  Type:   Direct-Access                      ANSI SCSI revision: 03
SCSI device sdb: 286749480 512-byte hdwr sectors (146816 MB)
SCSI device sdb: drive cache: write through
sdb: sdb1 sdb2 sdb3
Attached scsi disk sdb at scsi0, channel 0, id 1, lun 0
  Vendor: PE/PV     Model: 1×2 SCSI BP       Rev: 1.0
  Type:   Processor                          ANSI SCSI revision: 02

パーティションの設定

# /sbin/fdisk /dev/sdb

デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも含んでいません新たに DOS ディスクラベルを作成します。
あなたが書き込みを決定するまで、変更はメモリ内だけに残します。その後はもちろん以前の内容は修復不可能になります。このディスクのシリンダ数は 17849 に設定されています。間違いではないのですが、1024 を超えているため、以下の場合に問題を生じうる事を確認しましょう。

コマンド (m でヘルプ): p

Disk /dev/sdb: 146.8 GB, 146815733760 bytes
255 heads, 63 sectors/track, 17849 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

ファイルシステムの作成

#/sbin/mkfs -t ext3 /dev/sdb1
mke2fs 1.35 (28-Feb-2004)
max_blocks 4294967295, rsv_groups = 0, rsv_gdb = 1024
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
7325696 inodes, 14651272 blocks
732563 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=16777216
448 block groups
32768 blocks per group, 32768 fragments per group
16352 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424
Writing inode tables: done
inode.i_blocks = 106504, i_size = 4243456
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

※特にエラーがない標準出力の例。黙っていれば完了します。ちなみに上記で作成した、
パーティションを全てフォーマットして下さい。今回の例で言うと、3つです。

ファイルシステムのマウント

# mkdir /service/data1
# mount -t ext3 /dev/sdb1 /neet/data1
# mount -t ext3 /dev/sdb2 /neet/data2
# mount -t ext3 /dev/sdb3 /neet/data3

| | コメント (0) | トラックバック (0)

2008-03-28

MySQL リファレンス

インストール

パフォーマンスチューニング

SQL

こんなときどうする?

| | コメント (0) | トラックバック (0)

[mysql] やる夫がmsqldの起動に苦戦しているようです。

MySQLプロセスが立ち上がらない

# mysql -S /var/lib/mysql/yaruo_db &
[1]+  Exit 1

         ____
       /::::::::::  u\  
      /:::::::::⌒ 三. ⌒\    ・・・ちょ・・・
    /:::::::::: ( ○)三(○)\        MySQLプロセスがあがらない・・・
    |::::::::::::::::⌒(__人__)⌒  | ________
     \::::::::::   ` ⌒´   ,/ .| |          |
    ノ::::::::::u         \ | |          |
  /:::::::::::::::::      u       | |          |
 |::::::::::::: l  u             | |          |
 ヽ:::::::::::: -一ー_~、⌒)^),-、   | |_________|
  ヽ::::::::___,ノγ⌒ヽ)ニニ- ̄   | |  |

ココでは、”/usr/local/yaruo/yaruo_db/”配下にDBデータが格納されているものとします。エラーログには下記のように出力されているようです。

# tail -f /usr/local/yaruo/yaruo_db/logs/yaruo_db.errorlog
080324 19:18:33  InnoDB: Started; log sequence number 8 592253242
^G/usr/sbin/mysqld: File '/usr/local/yaruo/yaruo_db/binlog/yaruo_db.000032' not found (Errcode: 2)
080324 19:18:33 [ERROR] Failed to open log (file '/user/local/yaruo/yaruo_db/binlog/yaruo_db.000032', errno 2)
080324 19:18:33 [ERROR] Could not open log file
080324 19:18:33 [ERROR] Can't init tc log
080324 19:18:33 [ERROR] Aborting

080324 19:18:33  InnoDB: Starting shutdown...
080324 19:18:36  InnoDB: Shutdown completed; log sequence number 8 592253242
080324 19:18:36 [Note] /usr/sbin/mysqld: Shutdown complete

どうもプロセス立ち上げ時に”/usr/local/yaruo/yaruo_db/binlog/”配下のindexを見てログがないよといっているようです。今回の例では、”/usr/local/yaruo/yaruo_db/binlog/yaruo_db.000032”がないと言っています。

binlogはディスク圧迫する要因でもあるので、削除してしまったりします。手で削除すると、恐らくindex情報も更新されないので、今回のような事象になったりするようです。

対処方法としては、”/usr/local/yaruo/yaruo_db/binlog”配下のファイルを全部削除して下さい。

# cd /usr/local/yaruo/yaruo_db/binlog
# rm -rf yaruo_db*
# mysql -S /var/lib/mysql/yaruo_db &
# ps axuw | grep mysql
mysql    29711  0.0  1.9 2040900 160888 ?    Sl   Mar27   0:01 /usr/sbin/mysqld --defaults-group-suffix=_yaruo_db

----------------------------------------

現場で使える MySQL (DB Magazine SELECTION)
松信 嘉範
翔泳社翔泳社翔泳社
定価 : ¥ 2,730
2006-03-17
amazonで詳しく見る

| | コメント (0) | トラックバック (1)

2008-03-25

ipcs/ipcrm [プロセス管理コマンド]

ipcs コマンド

プロセスで使用している、共有メモリ量やセマフォの量を確認できます。

# ipcs -a

------ 共有メモリセグメント --------
キー     shmid      所有者  権限     バイト  nattch     状態
0x00000000 32768      gdm       600        196608     2          対象

------ セマフォ配列 --------
キー     semid      所有者  権限     nsems

------ メッセージキュー --------
キー     msqid      所有者  権限     使用バイト数 メッセージ

ipcrm コマンド

apacheとかのプロセスを落としても、まだメモリを使用しているときがあります。なんか悪さしているようでしたら、”ipcrm”で削除できます。

これで解決できるようなトラブルではたいしたことはない筈・・・。どうにもこうにもって人は他をあったった方がよろし・・・。

ipcrm -s 32768

| | コメント (0) | トラックバック (0)

2008-03-24

[postgersql] やる夫がDBにアクセス制限をかけるようです。

アクセス制限をしてみる

DBへのアクセスは極力利用するサーバだけに絞った方がよいです。どっかのサーバのバッチ処理が悪さして~ってのを未然に防ぐことが出来ます。予め運用時には設定しておくことをお勧めします。

”/usr/local/yaruo/pg_data”にpostgresqlデータがあるものとします。更新の再には、リロードを必要とします。

# cd /usr/local/yaruo/pg_data
# vi hba.conf
-----
# "local" is for Unix domain socket connections only
#local all      all                               trust
# IPv4 local connections:
#host  all      all         127.0.0.1/32          trust
# IPv6 local connections:
#host  all      all         ::1/128               trust

# 192.168.2.0/24のアドレス帯のみアクセスを許可する。
host    all     all         192.168.2.0/24        trust
# yaruo_dbのみアクセスを許可する。
#host  yaruo_db all         0.0.0.0/0             password
-----
$ su - postgres
$ pg_ctl -D /usr/local/yaruo/pg_data reload

  • # はコメントアウトね・・・。

----------------------------------------

オープンソースを使ったデータベースの構築―ApacheサーバとPostgreSQLでデータベース
藤田 泰徳 山崎 文則
セレンディップセレンディップセレンディップ
定価 : ¥ 3,675
2000-09
amazonで詳しく見る

| | コメント (0) | トラックバック (0)

2008-03-19

やる夫がphp-5.1.4をインストールするようです。

php-5.1.4について

PHPの実体は、Webサーバに置かれるソフトウエアの Apacheモジュールとして動作するスクリプト言語を実行する環境を指すようです。

php-5.1.4インストール手順

http://www.php.net/downloads.php からソースをダウンロードして下さい。URLが分かればwgetした方が楽です。

# zgzip -d php-5.1.4.tar.gz
# ./configure --with-apxs2 --enable-mbstring --enable-zend-multibyte --with-pgsql --with-mysql=/usr/local/mysql
# make install

  • with-apxs2 オプションで、apache2の動的モジュール生成プログラムapxsの場所を指定します。
  • enable-mbstring オプションは、マルチバイト関数を使用するために設定します。
  • with-mysql オプションで、mysqlのインストールディレクトリを指定します。

確認方法

”/home/yaruo/public_html”にwebコンテンツを置くものとします。下記のようにファイルを作成してみて下さい。ココではapacheが既にインストールされているものとします。apacheのインストールについては、こちらを参照下さい。

# zgzip -d php-5.1.4.tar.gz
# cd /home/yaruo/public_html
# vi info.php
-----
< ?php
    phpinfo();
?>
-----

http://192.168.2.10/~yaruo/info.php へアクセスすると、下記ページが閲覧できる筈です。Configureの設定等確認することが出来ます。

Php_2



















----------------------------------------

PHPによるWebアプリケーションスーパーサンプル 活用編
KJ 田中 ナルミ
ソフトバンククリエイティブソフトバンククリエイティブソフトバンククリエイティブ
定価 : ¥ 2,993
2006-05-27 amazonで詳しく見る

| | コメント (0) | トラックバック (0)

[postgresql] やる夫がDB接続数を確認するようです。

接続数の確認方法について

DBに負荷がない場合は特に気にしなくてもよいのですが、現在の接続数とかが下記SQLで分かったりします。”IDLE”が多い場合は、特に問題はありません。”SELECT”が多い場合はちょっと要注意です。

スロークエリとかで引っ掛かったりすると”SELECT”が滞留し始めます。

         ____
       /      \  
     /  _ノ  ヽ、_  \     最近DBのアラームが多いお
    / o゚((●)) ((●))゚o \
    |     (__人__)    |  
    \     ` ⌒´     /
   /´           `\
  /  /          l  l   .___
__l  l_¶______/_/__/     ヽ
  \, ´-'ヽ  ̄| ̄ ̄ ̄ ̄|   l二二二二l
    ヾ_ノ   | '''' '   |   l二二二二l
   | 9=ε-8. | '''..--  |   l二二二二l:::..
   |   ..''  |  ''-.  ,|

# psql
postgres=# select * from pg_stat_activity;
datid | datname  | procpid | usesysid | usename  | current_query |     query_start     |    backend_start    |  client_addr | client_port
-------+----------+---------+----------+----------+---------------+---------------------+---------------------+--------------+------------
10793 | postgres |    9670 |       10 | postgres | <IDLE>        | 2008-03-19 10:14:45 | 2008-03-19 10:13:57 |              |          -1
16387 | postgres |    9893 |       10 | postgres | <IDLE>        | 2008-03-19 10:14:48 | 2008-03-19 10:14:46 | 127.0.0.1    |       48405



postgres=# \q

時間毎のログが出力されているので、こちらでも確認できます。”idle”や”select”をgrepしてみて下さい。下記例では3/19 10:25頃の接続数を調べています。”select”数が12と少なく、特にクエリが滞留していないことを意味しており、正常とみなすことが出来ます。

# cd /usr/local/yaruo/work/pg_stats/0319
# ls -l pg_stat_activity.0319_10*
-rw-r--r--  1 postgres postgres 236907  3月 19 10:00 pg_stat_activity.0319_1000
-rw-r--r--  1 postgres postgres 248545  3月 19 10:05 pg_stat_activity.0319_1005
-rw-r--r--  1 postgres postgres 330576  3月 19 10:10 pg_stat_activity.0319_1010
-rw-r--r--  1 postgres postgres 427956  3月 19 10:15 pg_stat_activity.0319_1015
-rw-r--r--  1 postgres postgres 257137  3月 19 10:20 pg_stat_activity.0319_1020
# grep -c -i idle pg_stat_activity.0319_1025
363

  • max_connections 512
  • ピーク時間帯の同時接続  300程度 を想定したものとします。

たぶんですが、この場合だと”select”数が100以上になると要注意かと思います。pqaでログとるとバコバコスロークエリが引っ掛かると思います。新たにindexの追加をするか、DBスキーマ変更した方がよいんじゃないかなぁ~?

----------------------------------------

オープンソースを使ったデータベースの構築―ApacheサーバとPostgreSQLでデータベース
藤田 泰徳 山崎 文則
セレンディップセレンディップセレンディップ
定価 : ¥ 3,675
2000-09
amazonで詳しく見る

| | コメント (0) | トラックバック (0)

2008-03-17

やる夫がwordpressのテンプレートを変更するようです。

WordPressテンプレート変更について

簡単に出来ます。かっこいいデザインのテンプレートが公開されているので、ダウンロードして追加して見ましょう。

       ____
     /_ノ ' ヽ_\
   /(≡)   (≡)\   クールなページにするお
  / /// (__人__) ///\
  |     |r┬-|      |
  \     ` ー'´    /      

ファイルをダウンロードします。

”glossyblue-1-4.zip”これを、Windows上で回答しちゃいます。ディレクトリ毎下記ディr句取りは以下へアップロードして下さい。”/home/yaruo/public_html/wordpress/wp-content/themes”

  • yaruo箇所は任意

管理画面で、[表示]タブを選択すると新たにテンプレートが選択できるようになっているはずです。

Tempre_2

| | コメント (0) | トラックバック (0)

やる夫がsquidでキャッシュさせるようです。

squidについて

squidをproxyサーバとして利用していましたが、どうもキャッシュとしての役割もあるようですので、ちょっとだけ設定してみました。squidインストール方法についてはこちらを参照下さい。

            / ̄ ̄\
          /   _ノ  \
          |     -□-□)    
          |     (__人__)   最近なんかアクセスが多くてDBに負担かかって
             |     ` ⌒´ノ       きてるから、上でキャッシュするに設定しといて
              |         }
              ヽ        }

            ヽ、.,__ __ノ  
   _, 、 -― ''"::l:::::::\ー-..,ノ,、.゙,i 、
  /;;;;;;::゙:':、::::::::::::|_:::;、>、_ l|||||゙!:゙、-、_
 丿;;;;;;;;;;;:::::i::::::::::::::/:::::::\゙'' ゙||i l\>::::゙'ー、
. i;;;;;;;;;;;;;;;;;;;;;;|::::::::::::::\::::::::::\ .||||i|::::ヽ::::::|:::!
/;;;;;;;;;;;;;;;;;;;;;;;;!:::::::::::::::::::\:::::::::ヽ|||||:::::/::::::::i:::|
;;;;;;;;;;;;;;;;;;;;;;;;;;|;;;;:::::::::::::::::::::::\:::::゙、|||:::/::::::::::|:::

       ____
     /ノ   ヽ、_\
   /( ○)}liil{(○)\  
  /    (__人__)   \   しといてって・・・
  |   ヽ |!!il|!|!l| /   |      SEだからってなんでも
  \    |ェェェェ|     /         ソラで出来るわけじゃないお!

      / ̄ ̄\   
    /ノ( _ノ  \           んなことは知ってんだよ!
    | ⌒(( ●)(●)      ググレよ常識的に考えて!
    .|     (__人__) /⌒l
     |     ` ⌒´ノ |`'''|
    / ⌒ヽ     }  |  |              
   /  へ  \   }__/ /             / ̄ ̄\    新しい設定は嫌・・・
 / / |      ノ   ノ           / ●)) ((●\’, ・ 
( _ ノ    |      \´       _    (   (_人_)’∴ ),  ’
       |       \_,, -‐ ''"   ̄ ゙̄''―---└'´ ̄`ヽ   て
       .|                  ______ ノ    (
       ヽ           _,, -‐ ''"  ノ       ヽ   r'" ̄
         \       , '´        し/..     | J
          \     (           /      |
            \    \         し-  '^`-J

squid操作

起動

# /usr/local/squid/bin/RunCache &

停止

# skill RunCache
# /etc/init.d/squid kill

リロード

/etc/init.d/squid reconfig

ログローテーション

/etc/init.d/squid rotate

squid設定

”http://yaruo.neet.com/yaruo/neet_1/vipper/”とうのページがあるとして、下記では、yaruo以下のディレクトリに対してキャッシュするように設定しています。

http_port 3128 accel defaultsite=localhost vhost
cache_peer localhost parent 8080 0 no-query originserver

visible_hostname yaruo

# ファイルをキャッシュしてみる
refresh_pattern -i \.(png|jpg|jpeg|png|gif|mp3) 5 0% 5 override-expire override-lastmod ignore-reload

# yaruo以下のディレクトリに対してキャッシュ時間を5分10分に設定しています。
refresh_pattern yaruo/.*/neet_1/.*       5 0% 5 override-expire override-lastmod ignore-reload
refresh_pattern yaruo/.*/neet_2/.*       10 0% 10 override-expire override-lastmod ignore-reload
# 上記以外はキャッシュさせない
refresh_pattern .                    0 0%  0

# IMSをOFF(If-Modified-Since)
refresh_all_ims off

# ログ設定
access_log      /usr/local/yaruo/squid/squid.access.log squid
cache_log       /usr/local/yaruo/squid/squid.cache.log
cache_store_log /usr/local/yaruo/squid/squid.store.log

coredump_dir    /usr/local/squid/var/cache

| | コメント (0) | トラックバック (0)

[mysql] やる夫のDBがディスクフルでアボーンしたようです。

ディスク容量が足りないようです。

         ____
       /::::::::::  u\  
      /:::::::::⌒ 三. ⌒\    ・・・ちょ・・・おま・・・ 
    /:::::::::: ( ○)三(○)\        使えないんですが・・・逃げたい・・・
    |::::::::::::::::⌒(__人__)⌒  | ________
     \::::::::::   ` ⌒´   ,/ .| |          |
    ノ::::::::::u         \ | |          |
  /:::::::::::::::::      u       | |          |
 |::::::::::::: l  u             | |          |
 ヽ:::::::::::: -一ー_~、⌒)^),-、   | |_________|
  ヽ::::::::___,ノγ⌒ヽ)ニニ- ̄   | |  |

mysql> desc yauro_tb;
ERROR 1030 (HY000): Got error 28 from storage engine

ディスク容量が足りないようです。binlogとかの整理をする必要があるようです。・・・最近検証環境だがやってしまった。動きが重いだとかの警鐘があったのだが、後回しにしていました。色々作業が平行していたため、復旧に半日要しました。コレがサービス環境だと思うと・・・。((((;゜Д゜)))ガクガクブルブル

----------------------------------------

現場で使える MySQL (DB Magazine SELECTION)
松信 嘉範
翔泳社翔泳社翔泳社
定価 : ¥ 2,730
2006-03-17
amazonで詳しく見る

| | コメント (0) | トラックバック (0)

2008-03-15

cat [ファイル管理コマンド]

cat コマンド

catコマンドはテキストファイルの内容を閲覧やファイルを連結できます。

オプション

オプション 機能
-n 行番号を表示
-b 空白以外に行番号を表示
-s 連続空白を1行の空白にする

実行例

# cat yaruo.log
neet1
neet2
# cat yaranaio.log
neet3
neet4
# cat yaruo.log yaranaio.log > dekiruo.log
# cat dekiruo.log
neet1
neet2
neet3
neet4
# cat -n yaruo.log
1 neet1
2 neet2

| | コメント (0) | トラックバック (0)

2008-03-14

やる夫がapache2.0/2.2系で帯域制限をかけるようです。

apache帯域制限について

同時接続数は、MaxClientsによって制限できますが、通信回線スピードの制限を与えるには、”mod_bw”モジュールを利用してやればよいです。特に指定していないと、ジャブジャブ使われて、通信コストも馬鹿にならないもんです・・・。

mod_dwインストール

# cd /usr/local/yaruo/src
# wget http://apache.ivn.cl/files/source/mod_bw-0.8.tgz
–11:31:07– http://apache.ivn.cl/files/source/mod_bw-0.8.tgz
=> `mod_bw-0.8.tgz’
apache.ivn.cl をDNSに問いあわせています… 200.27.37.125
apache.ivn.cl[200.27.37.125]:80 に接続しています… 接続しました。
HTTP による接続要求を送信しました、応答を待っています… 200 OK
長さ: 19,026 [application/x-gzip]

100%[===============================>] 19,026 6.68K/s

11:31:12 (6.66 KB/s) - `mod_bw-0.8.tgz’ saved [19,026/19,026]

# tar xvfz mod_bw-0.8.tgz
# cd mod_bw
# /usr/local/apache2/bin/apxs -i -a -c mod_bw.c
/usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic  -DAP_HAVE_DESIGNATED_INITIALIZER -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache2/include  -I/usr/local/apache2/include   -I/usr/local/apache2/include   -c -o mod_bw.lo mod_bw.c && touch mod_bw.slo
gcc: mod_bw.c: No such file or directory
gcc: no input files
apxs:Error: Command failed with rc=65536
.
# /usr/local/apache2/bin/httpd -l

mod_dw設定

下記例では、”.mp3”と”.m4v”で500kbyte以上の.aviファイルは 10kbytes/sで転送量を制限する。設定になります。

# vi /usr/local/apache2/virtualhost.conf
-----
BandwidthModule On
ForceBandWidthModule On
LargeFileLimit .mp3 500 10240
LargeFileLimit .m4v 500 10240
MinBandWidth all -1
-----
# /usr/local/apachectl graceful

| | コメント (0) | トラックバック (0)

2008-03-13

[mysql] やる夫がmax_connectionsの設定をするようです。

max_connectionsについて

DBを守るための設定と思っています。簡単に言うと同時接続は50名までしか認めませんよっとかいう設定ができます@PostgreSQLと同じ説明

max_connections設定方法

# vi /etc/my.cnf
-----
# The maximum amount of concurrent sessions the MySQL server will
# allow. One of these connections will be reserved for a user with
# SUPER privileges to allow the administrator to login even if the
# connection limit has been reached.
max_connections = 512
-----

mysqldの再起動をお願い致します。

----------------------------------------

現場で使える MySQL (DB Magazine SELECTION)
松信 嘉範
翔泳社翔泳社翔泳社
定価 : ¥ 2,730
2006-03-17
amazonで詳しく見る

| | コメント (0) | トラックバック (0)

やる夫がWordPressをインストールしたようです。

WordPressについて

PHP+MySQLの高機能なWeblogツールです。・・・はてなダイアリー読んでますスマソ。

     ____
   /      \
  /  ─    ─\     
/    (●)  (●) \   業務日誌や、作業ログ用に
|       (__人__)    |       社内Blogでも構築するか・・・
/     ∩ノ ⊃  /
(  \ / _ノ |  | 
.\ “  /__|  |
  \ /___ /

     ____
   /      \ ( ;;;;(
  /  _ノ  ヽ__\) ;;;;) 
/    (─)  (─ /;;/   このブログ自体MTだが・・・
|       (__人__) l;;,´        まぁ気分転換に業務日誌は
/      ∩ ノ)━・'/             WordPressでも使ってみるお 
(  \ / _ノ´.|  |
.\  "  /__|  | 
  \ /___ /  

私も、作業ログ用にWordPressを使っていましたが、どうも記事を作成すると「’半角」が「’(全角)」で登録してしまうようす。設定方法が別にあるのかもしれませんし、そもそもあれからバージョンアップしているので問題(?)は解消されているかもしれません。

  • ちなみに現在はpukiwikiを使っています。

       ____
     /⌒  ⌒\
   /( >)  (<)\   社内Blogをさっと構築してあげたらキット
  /::::::⌒(__人__)⌒::::: \     OLにもてもてだお!
  |    /| | | | |     |  
  \  (、`ー―'´,    /   シシシシシシシシッ

WordPressはMySQLさえ導入してあれば、話が早いです。今回の説明ではMySQLが初めからインストールされているものとして進めます。MySQLのインストールはこちら。

WordPressインストール手順

下記よりファイルをダウンロードして下さい。

http://wordpress.xwd.jp/ 現在(日本版)はwordpress-2.2.3が最新版のようです。wordpress-me223.zipだったので、Windowsで解凍してからディレクトリ毎アップいたしました。

今回は、”/home/yaruo/public_html”配下にWordPressを構築する手順とします。

# cd /home/yaruo/public_html
# ls
wordpress

  • FTPでアップしたのでWordPressが確認できる筈。

# chown -R yaruo:yaruo wordpress
# chmod -R 777 wordpress

  • オーナーはその人のアカウントにしてあげて下さい。
  • -R オプションはディレクトリ以下のディレクトリ及びファイル全てです。

MySQLでDBとアカウントの作成

今回は、MySQLアカウント”yaruo”でパスワードも”yaruo”とします。権限はめんどくさいのでALLで・・・。

# mysql
mysql> create database wp_yaruo
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+-----------------------------+
| Database                    |
+-----------------------------+
| data                        |
| mysql                       |
| yaruo                       |
+-----------------------------+
3 rows in set (0.00 sec)

GRANT ALL ON *.* TO yaruo@'%' IDENTIFIED BY 'yaruo';
Query OK, 1 row affected (0.00 sec)

これで下準備は完了の筈。あぁ~apacheも入っていること前提で書いちゃってます。apacheインストールはこちら。

ココまできたらあとはWeb上の設定になります。下記にアクセスします。

http://192.168.2.10/~yaruo/wordpress/

Wordpress





















Wordpress2 Wordpress3





















MySQLで設定したDB名および、アカウントを入力して下さい。

Wordpress4 Wordpress5 Wordpress6 Wordpress7
Wordpress8






















記事投稿してみる。


| | コメント (0) | トラックバック (0)

2008-03-12

[mysql] やる夫がmax_allowed_packetの設定をするようです。

max_allowed_packetについて

max_allowed_packetとは、通信時における1パケットの最大サイズ。BLOB型(画像などのバイナリを入れるカラム)を利用する場合、最大BLOBカラム長より大きく設定する必要があります。

DBD::mysql::st execute failed: Got a packet bigger than 'max_allowed_packet' bytes at /usr/local/yaruo/mysal/DBI.pm line 347

max_allowed_packetが小さいとエラーが出力されます。

max_allowed_packetの確認方法

下記結果は、16Mで設定している状態です。

mysql> show variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 1047552 |
+--------------------+---------+
1 row in set (0.00 sec)

max_allowed_packetの設定方法

設定方法は、my.cnfを書き換えて、mysqldを再起動する方法と、mysqlログインをして、SQL文を叩く方法です。ちなみに後者は、mysqlログイン時のみ有効のようです。

     ____
   /      \
  /  ─    ─\     
/    (●)  (●) \   永続的に変更する場合はやはり
|       (__人__)    |       mysqldの再起動が必要だお
/     ∩ノ ⊃  /
(  \ / _ノ |  | 
.\ “  /__|  |
  \ /___ /

     ____
   /      \ ( ;;;;(
  /  _ノ  ヽ__\) ;;;;) 
/    (─)  (─ /;;/   
|       (__人__) l;;,´   クラスタ監視停止とか   
/      ∩ ノ)━・'/       余分な作業がでてくるお
(  \ / _ノ´.|  |
.\  "  /__|  |      まんどくせ・・・
  \ /___ /  

下記例では、32Mに設定した場合の例です。

#vi myconf
-----
- max_allowed_packet = 16M
+ max_allowed_packet = 32M
-----

  • - はその行を消去して下さい(コメントアウトでも可)。
  • + はその行を追加して下さい。

SQL

下記例では、32Mに設定した場合の例です。

mysql> set max_allowed_packet=33553408;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'max_allowed_packet';
+--------------------+----------+
| Variable_name      | Value    |
+--------------------+----------+
| max_allowed_packet | 33553408 |
+--------------------+----------+
1 row in set (0.00 sec)

  • 別に切り番でもよいです。33555000とか・・・。
  • mysqlログアウトしちゃうと16Mに戻ってしまいます。あしからず・・・。

----------------------------------------

現場で使える MySQL (DB Magazine SELECTION)
松信 嘉範
翔泳社翔泳社翔泳社
定価 : ¥ 2,730
2006-03-17
amazonで詳しく見る

| | コメント (0) | トラックバック (0)

2008-03-11

[postgresql] やる夫がmax_connectionsの設定をするようです。

max_connectionsについて

DBを守るための設定と思っています。簡単に言うと同時接続は50名までしか認めませんよっとかいう設定ができます。

Warning: Unable to connect to PostgreSQL server: FATAL: Non-superuser connection limit exceeded in /home/yaruo/neet.htm on line 123

上記エラーメッセージはmax_connectionsが足りないですと言っています。

     |┃三
     |┃
     |┃
 ガラッ. |┃  
     |┃  ノ//   ./ ̄ ̄ ̄ \
     |┃三    /  ::\:::/:::: \
     |┃     /  <●>::::::<●>  \  そろそろ接続してもよいかね?
     |┃     |    (__人__)     |  
     |┃三   \    ` ⌒´    /
     |┃三   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ \

max_connections設定方法

下記例では、”/home/yaruo/Data”配下にPostgreSQLデータがあるものとします。”max_connections”の変更の際には、pg_ctl reload を必要とします。

$ vi /home/yaruo/Data/postgresql.conf
-----
max_connections = 512
-----
$ /usr/local/pgsql/bin/pg_ctl reload

空けすぎるとDBに負担かかるし・・・。ちょうどよい値をチューニングしてみて下さい。

----------------------------------------

オープンソースを使ったデータベースの構築―ApacheサーバとPostgreSQLでデータベース
藤田 泰徳 山崎 文則
セレンディップセレンディップセレンディップ
定価 : ¥ 3,675
2000-09
amazonで詳しく見る

| | コメント (0) | トラックバック (0)

2008-03-10

touch [ファイル管理コマンド]

touch コマンド

空ファイルの作成やタイムスタンプの変更/更新時に利用します。フラグ的な感じで、あるディレクトリに対しファイルを作成したいときなどに利用すると思います。

# ls -lu
-rw-r--r--   1 root root 12829188  1月  3 05:07 yaruo.txt
# touch yaranaio.txt
# ls -l yaranaio.txt
-rw-r--r--   1 root root        0  3月 10 16:08 yaranaio.txt

  • -t オプションは、指定した時刻と日付に変更します。上記例では1/3 05:07になるようにタイムスタンプの変更をしています。
  • オプションがなければ、からファイルを作成します。

備考

ついでなんですが、一般ユーザがログインすることを禁止するときも。touchコマンドを利用します。解除するときは、単に削除すればよいだけです。

# touch /etc/nologin

| | コメント (0) | トラックバック (0)

[mysql] やる夫がselect結果をcsvファイル形式で出力するようです。

SELECT結果をcsvファイル形式で出力する

SELECT結果を、コピペするのもいいけど、もう少しSEっぽく対応したいですね。やる夫もはじめは良かったのですが、ほぼ毎日やらなきゃいけない作業なので嫌気がさして来たようです。

       ____
     /ノ   ヽ、_\
   /( ○)}liil{(○)\     毎日・・・ピーしてペーすんのも
  /    (__人__)   \                 うんざりだお!
  |   ヽ |!!il|!|!l| /   |       なんでやる夫ばかりこんなに作業が多いんだお!
  \    |ェェェェ|     /             大概にしてほしいお!

      / ̄ ̄\   
    /ノ( _ノ  \            ・・・
    | ⌒(( ●)(●)      (うっせ~よ)
    .|     (__人__) /⌒l
     |     ` ⌒´ノ |`'''|
    / ⌒ヽ     }  |  |              
   /  へ  \   }__/ /             / ̄ ̄\    土方・
 / / |      ノ   ノ           / ●)) ((●\’, ・ 
( _ ノ    |      \´       _    (   (_人_)’∴ ),  ’
       |       \_,, -‐ ''"   ̄ ゙̄''―---└'´ ̄`ヽ   て
       .|                  ______ ノ    (
       ヽ           _,, -‐ ''"  ノ       ヽ   r'" ̄
         \       , '´        し/..     | J
          \     (           /      |
            \    \         し-  '^`-J



          γ⌒)       コピペ
         / ⊃ ̄ ̄ ̄\
      〃/ /   ::\:::/::ヽ∩⌒) ))
       γ⌒)  <●>:::<●|/ ノ      延々とコピペしてやんよ
      / _ノ    (__人__)} / ))     
     (  <  .    ` ⌒´ 、( ⌒)   オラオラ
    (( \ ヽ          /     
       ヽ_ _       |ノ    コピペ   
        |           |    
        |         |
        i      ̄\ ./ オラオラ
         \_     |/   コピペ
          _ノ \___)
         (    _/
          |_ノ

     ____
   /      \
  /  ─    ─\     
/    (●)  (●) \    このSELECT文結果をそのまま
|       (__人__)    |        ファイルに出力したいのだが・・・
/     ∩ノ ⊃  /
(  \ / _ノ |  | 
.\ “  /__|  |
  \ /___ /

select * from [table_name] INTO OUTFILE "[file_name]" FIELDS TERMINATED BY ',';

       ____
     /_ノ   ヽ_\
   /( >)  (<)\
  /::::::⌒(__人__)⌒::::: \  googleサイコーあったお!
  |     |r┬-/      |
  \     ` ̄'´     /

ちょっとだけやる夫が成長したようです。同じSQL文なら、テキストから食わせてやれば、わざわざMySQLにログインすることもなくcronで何とかなるのだが、とりあえずできることから一歩一歩前に進んで逝きましょう・・・。下記はコマンド例です。

mysql> select neet_id, user_name from yaruo_tb limit 5;
+----------+-----------+
| neet_id  | user_name |
+----------+-----------+
| 12047384 | dekiruo   |
| 12048877 | yaranaio  |
| 12048879 | yarumi    |
| 12048934 | yaruo     |
| 12048927 | opu-na    |
+----------+-----------+
5 rows in set (0.00 sec)

mysql> select neet_id, user_name from yaruo_tb limit 5 INTO OUTFILE "/home/yaruo/20080310.csv" FIELDS TERMINATED BY ',';
Query OK, 49 rows affected (0.04 sec)
mysql> Aborted
# cat /home/yaruo/20080310.csv
12047384,dekiruo
12048877,yaranaio
12048879,yarumi
12048934,yaruo
12048927,opu-na

----------------------------------------

現場で使える MySQL (DB Magazine SELECTION)
松信 嘉範
翔泳社翔泳社翔泳社
定価 : ¥ 2,730
2006-03-17
amazonで詳しく見る

| | コメント (0) | トラックバック (2)

2008-03-07

[linux] やる夫がcronの設定をするようです。

cronについて

cronとは、ジョブを自動実行するためのデーモンプロセスです。例えば毎朝7時にあるshellを実行するとか・・・。sarとかもcronで動いていたと思った。

cron設定方法

cronの設定方法をいくつか記載します。

# 毎日3:05、18:05にyaruo.shを実行
5 3,18 * * * /home/yaruo/bin/yaruo.sh > yaruo.log 2>&1

# 5分おきにyaruo.shを実行
*/5 * * * *  /home/yaruo/bin/yaruo.sh

# 3/7 12:30にyaruo.shを実行
30 12 7 3 *  /home/yaruo/bin/yaruo.sh

# 日曜日12:00にyaruo.shを実行
0 12 * * * 0 /home/yaruo/bin/yaruo.sh

/deb/null 2>&1 標準出力だけでなく、標準エラー出力もリダイレクトするための指示です。ようは余計な画面表示がなくなります。

cron設定をすると”/var/spool/cron/”配下に設定ファイルが作成されます。rootユーザでcron設定すると、”/var/spool/cron/root”というファイルが出来ている筈です。

cronログについて

ログは”/var/log/cron”に出力されます。indigo01はhost_nameを指しています。

# tail /var/log/cron
Mar  7 07:51:46 indigo01 crontab[10196]: (root) BEGIN EDIT (root)
Mar  7 07:51:51 indigo01 crontab[10196]: (root) REPLACE (root)
Mar  7 07:51:51 indigo01 crontab[10196]: (root) END EDIT (root)
Mar  7 07:52:01 indigo01 crond[10200]: (root) CMD (date)
Mar  7 07:52:01 indigo01 crond[3181]: (root) RELOAD (cron/root)

cronを設定しても直ぐに反映されません。上記例だと07:52:01にcron設定ファイルをRELOADしているので、この時点で晴れてcron設定が有効になります。試験的にcronを仕掛けるときは、3分後とかに設定するとよいでしょう。

----------------------------------------

日経 Linux (リナックス) 2008年 03月号 [雑誌]
日経BP出版センター日経BP出版センター日経BP出版センター
定価 : ¥ 1,490
2008-02-08
amazonで詳しく見る

| | コメント (0) | トラックバック (0)

2008-03-06

やる夫がBasic認証の設定をするようです。

Basic認証について

Basic認証とは、HTTPで定義される認証の一つです。まれにどこかのサイトにアクセスしたときに出てきて見かけたことあると思います。

Yaruo














簡易的な認証方法だと思っています。なので一度認証を通過してしまうと、Webブラウザを閉じるまでその情報が有効になってしまいます。

Basic認証してるから安心と思うと結構勘違いです、接続もとのアドレスが分かっていれば、そのIPのみ受付を許可するように制限かけたり、した方がよいです。まぁネットカフェとかでアクセスするときは慎重に(?)すればよい。いや・・・会社情報にネットカフェからアクセスすることがおかしいのだが・・・。

            / ̄ ̄\
          /   _ノ  \
          |    ( ●)(●)
          |     (__人__)  
             |     ` ⌒´ノ    クライアントにも社内wikiを開放したいから
              |         }    Global開放しちゃったので、
              ヽ        }               念のためBasic認証かけといて・・・
            ヽ、.,__ __ノ
   _, 、 -― ''"::l:::::::\ー-..,ノ,、.゙,i 、
  /;;;;;;::゙:':、::::::::::::|_:::;、>、_ l|||||゙!:゙、-、_
 丿;;;;;;;;;;;:::::i::::::::::::::/:::::::\゙'' ゙||i l\>::::゙'ー、
. i;;;;;;;;;;;;;;;;;;;;;;|::::::::::::::\::::::::::\ .||||i|::::ヽ::::::|:::!
/;;;;;;;;;;;;;;;;;;;;;;;;!:::::::::::::::::::\:::::::::ヽ|||||:::::/::::::::i:::|

          ____
       / \  /\  キリッ
.     / (ー)  (ー)\
    /   ⌒(__人__)⌒ \    Basic認証だけだと
    |      |r┬-|    |          セキュリティに問題あるお!
     \     `ー'´   /               やらない夫は分かってないお!
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

      / ̄ ̄\   
    /ノ( _ノ  \            お前に言われなくても、クライアントのIPだけ
    | ⌒(( ●)(●)            アクセスできるように絞ってんだよ!
    .|     (__人__) /⌒l
     |     ` ⌒´ノ |`'''|
    / ⌒ヽ     }  |  |              
   /  へ  \   }__/ /             / ̄ ̄\    ベーっシッk
 / / |      ノ   ノ           / ●)) ((●\’, ・ 
( _ ノ    |      \´       _    (   (_人_)’∴ ),  ’
       |       \_,, -‐ ''"   ̄ ゙̄''―---└'´ ̄`ヽ   て
       .|                  ______ ノ    (
       ヽ           _,, -‐ ''"  ノ       ヽ   r'" ̄
         \       , '´        し/..     | J
          \     (           /      |
            \    \         し-  '^`-J

Basic認証設定方法

ディレクトリ構成

  • /home/yaruo/public_html/neet_wiki

”neet_wiki”配下に、Basic認証を設定することとします。設定方法は簡単で、”.htaccess”と”.htpasswd”ファイルを用意してあげればOKです。

.htaccess

neet_wikiディレクトリに対して、新規作成します。今回は接続元のIP制限をしません。

# vi /home/yaruo/public_html/neet_wiki/.htpasswd
-----
# Basic認証設定をしたいディレクトリのフルパスを記入する。
AuthUserFile /home/yaruo/public_html/neet_wiki/.htpasswd
AuthGroupFile /dev/null
# ””の中身は”┗(^o^ )┓パスワード入れてね”でもよい。
AuthName "Input ID and Password."
AuthType Basic
require valid-user
<Files ~ "^.(htpasswd|htaccess)$">
    deny from all
    # 接続もとの設定は下記のような感じでお願いします。
    #allow from 210.165.9.195
</Files>
-----

.htpasswd

ユーザID”yaruo”でパスワード”neet”として”.htpasswd”を作成してみます。

# htpasswd -c /home/yaruo/public_html/neet_wiki/.htpasswd yaruo
New password:
Re-type new password:
Adding password for user yaruo

この時点で、Basic認証の設定は完了です。

| | コメント (0) | トラックバック (1)

2008-03-05

やる夫がsyslogの設定をするようです。

syslog について

ログの出力方法についてですが、アプリケーションが独自に出力するものと、syslogdを利用して出力するもので分かれます。独自に出力するアプリケーションとしてapacheやsquidがあります。バカスカログを出力するのであれば、syslogd経由でログを出力するほうが、CPUコスト的にも良いようです。

同じメッセージが続いて出力される場合は、下記のように6回でマスタって教えてくれます。

2008/03/03 20:53:05: same message repeated 6 times

同じメッセージをそのまま出力するより、ログのファイルサイズも抑えることが出来ると思います。

            / ̄ ̄\
          /   _ノ  \
          |     -□-□)
          |     (__人__)     アプリのログをsyslog経由で出力するように
             |     ` ⌒´ノ     したから、syslogの設定しといてくんない?
              |         }
              ヽ        }      (ほんと・・・こいつは・・・)

            ヽ、.,__ __ノ  
   _, 、 -― ''"::l:::::::\ー-..,ノ,、.゙,i 、
  /;;;;;;::゙:':、::::::::::::|_:::;、>、_ l|||||゙!:゙、-、_
 丿;;;;;;;;;;;:::::i::::::::::::::/:::::::\゙'' ゙||i l\>::::゙'ー、
. i;;;;;;;;;;;;;;;;;;;;;;|::::::::::::::\::::::::::\ .||||i|::::ヽ::::::|:::!
/;;;;;;;;;;;;;;;;;;;;;;;;!:::::::::::::::::::\:::::::::ヽ|||||:::::/::::::::i:::|
;;;;;;;;;;;;;;;;;;;;;;;;;;|;;;;:::::::::::::::::::::::\:::::゙、|||:::/::::::::::|:::

アプリ側でsyslog経由でログを出力するだけでは、”/var/log/message”とかに出力されてしまうので、別途”syslog.conf”の設定が必要になります。やらない夫はアプリの設定だけ済ませたようです。

これから、IT土方のやる夫がsyslogの設定をするようです。

~ 一週間後 ~

         ____      そういや・・・やらない夫にsyslogの
       /      \         設定お願いされていたっけ・・・
      /  ─    ─\     最近こんな設定ばっかだお・・・
    /    (●)  (●) \        客との仕様調整とかしてみたいお
    |       (__人__)    | ________
     \      ` ⌒´   ,/ .| |          |
    ノ           \ | |          |
  /´                 | |          |
 |    l                | |          |
 ヽ    -一ー_~、⌒)^),-、   | |_________|
  ヽ ____,ノγ⌒ヽ)ニニ- ̄   | |  |

         ____
       /      \
      /  ─    ─\     なんか・・・
    /    (○)  (○) \    /var/log 配下のログが肥大化してる・・・
    |       (__人__)    | ________
     \      ` ⌒´   ,/ .| |          |
    ノ           \ | |          |
  /´                 | |          |
 |    l                | |          |
 ヽ    -一ー_~、⌒)^),-、   | |_________|
  ヽ ____,ノγ⌒ヽ)ニニ- ̄   | |  | 

         ____
       /::::::::::  u\
      /:::::::::⌒ 三. ⌒\     そういえばsyslogの設定のしかたしらなかった!
    /:::::::::: ( ○)三(○)\   /var ディスクが90%超え!
    |::::::::::::::::⌒(__人__)⌒  | ____