Tag Archives: server

MySQLクエリキャッシュのクリア方法

MySQLクエリをキャッシュしている場合に、パフォーマンステスト等で一旦リセットしたい時がある。 こういった時には、RESET QUERY CACHE; コマンドを使えばよい。   現在のキャッシュ状況を確認 mysql> SHOW STATUS LIKE’Qcache%’; +——————————–+———-+ | Variable_name | Value | +——————————–+———-+ | Qcache_free_blocks | 1 | | Qcache_free_memory | 24743152 | | Qcache_hits | 1924 | | Qcache_inserts | 904 | | Qcache_lowmem_prunes … Continue reading

MySQL5.1のlog出力とlogrotate設定

MySQL5.1.50 / CentOS5.5(64bit) 環境下での、 ログ出力とログローテーションの設定についてメモ。 ログ出力設定 /var/log/配下にmysqlディレクトリを作成して、以下3つのログを格納する。 error.log(mysqldエラーログ)、query.log(全ての発行クエリログ)、slow.log(スロークエリのログ) (前準備) # mysql -V mysql Ver 14.14 Distrib 5.1.50, for redhat-linux-gnu (i686) using readline 5.1 # mkdir /var/log/mysql/ # touch /var/log/mysql/error.log # touch /var/log/mysql/query.log # touch /var/log/mysql/slow.log # chmod 755 /var/log/mysql/ # … Continue reading

Warning: Your privilege table structure seem to be older than this MySQL version! Please run the script mysql_fix_privilege_tables that should be included in your MySQL server distribution to solve this problem!

phpMyAdminで特権操作しようとしたら、標記のWorningメッセージが… mysql_fix_privilege_tablesを実行しろということで、結論からいうと、 下記コマンドにて権限操作ができるようになった。 # mysql_fix_privilege_tables –password={*root password*} # service mysqld restart このWorningは、MySQLがアップグレードされてるのに、 システムテーブルの更新がされてない場合に発生する模様。 4.5.2. mysql_fix_privilege_tables — MySQL システム テーブルのアップグレード MySQL のリリースによっては、新たに権限を追加するとき、または新たな機能をサポートするときに、mysql データベースのシステム テーブルのストラクチャを変更できます。新しいバージョンの MySQL にアップグレードするときは、システム テーブルも同様に更新し、ストラクチャが最新であることを確かめる必要があります。これをしないと、この利点を活用できません。 MySQLアップグレード時に、システムテーブルも更新するか否かは任意だけど、 phpMyAdmin側からすると、Mustですよってことなのかな。 mysql_fix_privilege_tablesする前に、msqlコマンドで権限がいじれるか 確認してみたかったとちょっと後悔。

[shell] top/psコマンドの結果を定期的に保存

サーバの監視ツールには色々な種類があるけれども、 ちょっとこうしたいといった時には、shellスクリプト書いたほうがてっとり早かったり。 例えば、障害発生前後で、top/psがどういう状況だったのか?みたい時とか。 今回は、「cronで5分おきにshellスクリプトを実行し、Load Averageが5を超えたときに、top,ps結果を保存する」 といった、Shellスクリプトを書いたのでメモしておく。 # vi /scripts/toppslog.sh #!/bin/sh # define MAX_LOAD_AVG=5 # get Load Average LOAD_AVG=`uptime | cut -d, -f4 | cut -d: -f2 | cut -d. -f1` if [ $LOAD_AVG -gt $MAX_LOAD_AVG ]; then # make logfile … Continue reading

Apache DoS攻撃対策 – mod_evasive編

ApacheのDoS攻撃対策には、色々なモジュールが用意されてる。 有名どころだと、はてな製のmod_dosdetector、ITProでも紹介されたmod_evasiveだろうか。 これまで、mod_dosdetectorを利用してきたけど、今回はmod_evasiveを導入してみた。 モジュール、mod_evasive サーバ環境は、 CentOS/5.5 (64bit版) , Apache/2.2.15 mod_evasive インストール apxsコマンドでApacheにモジュールを追加するので、mod_so.cが必要。 mod_so.cがない場合は、yumからhttpd-develを事前にいれておく。 # httpd -l core.c prefork.c http_core.c mod_so.c ←これがあること # cd /usr/local/src/ # wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz # tar zxvf mod_evasive_1.10.1.tar.gz # cd mod_evasive # vi mod_evasive20.c # define MAILER "/bin/mail … Continue reading

Putty秘密鍵(ppk)をMacで使う

ちょっとタイトルは語弊があるかもしれないが… (ppkそのままでは使えないので、変換する必要ありというお話)   Putty秘密鍵(*.ppk)を使ってMacのターミナルからSSH接続したい。 といった場合、予め、Putty(puttygen)でOpenSSH形式に変換する必要がある。   単純に、Windowsから秘密鍵(*.ppk)を持ってきてSSHコマンド叩くと、 以下のようなエラーになってしまう。 $ ssh -i ~/.ssh/test.ppk user@192.168.100.1 -p22 Permission denied (publickey).   これは、Puttyの秘密鍵はOpenSSH式でない為。 従って、puttygenを使って、OpenSSH式の秘密鍵に変換する。 変換方法は、puttygenを起動し、下記手順で変換出力できる。    1) “load”からputty秘密鍵(*.ppk)を読込み  2) “Conversions” -> “Export Open SSH Key” を選択  3) “test.key”等のファイル名で保存   ここで生成したOpenSSH鍵をMacに持ってきて、パーミッション変更。 $chmod 600 ~/.ssh/test.key あとは、SSHコマンドを叩けば、うまく接続できる。

Git導入(CentOS5-MacOSX)

バージョン管理といえばSubversionだけど、最近では分散型のGitが人気だったり。 Gitを使うならGitHubを使うのもよいが、無料且つクローズドなバージョン管理をするなら、 サーバにGitをインストールするのもいい。yumで一発インストールできるので手軽。 CentOSとMacでGitを利用するまでまとめてみる。 MacOSX10.6へ Gitインストール/設定 ※要macports mac% sudo port install git-core +svn mac% git config –global user.name "ijo" mac% git config –global user.email abc@ijo.cc mac% git config -l CentOS5.5(64bit)へ Gitインストール/設定 # yum install git # yum install git-daemon –enablerepo=rpmforge … Continue reading

(Postfix) Sフラグでメールが詰まる.

postfix正常動作中、mailqも”Mail queue is empty”な状態で、 サーバからメールが受信できない症状が発生。 $ mailq Mail queue is empty $ ll /home/ijouser/Maildir/cur/ total 6308 -rw——- 1 ijouser ijouser 3696 Jul 14 11:33 1279074839.V302I80001M709989.sv100.example.com:2,S -rw——- 1 ijouser ijouser 81540 Jul 14 12:05 1279076747.V302I80002M649647.sv100.example.com:2, -rw——- 1 ijouser ijouser 9016 Jul … Continue reading

Maildirの仕様について

Unix系OSでメールサーバをたてる場合、Postfix,Sendmail,qmailを採用することが多い。 そして大抵、受信メール格納には、Maildirを利用する。 そもそも、このMaildirとはなにか? メールはどんな風にしてMaildirに格納されるのか? ほんの少しだけ紐解いてみる。 Maildirとは Wikipediaの概要から要点だけ抜き出すと… ・Maildirは、広く使われている電子メール格納フォーマットの一種 ・個々のメッセージは個別のファイルとして一意な名前付きで保持 ・Maildirサブディレクトリとして tmp、new、cur がある。 @Wikipedia Maildirサブディレクトリと配送 受信メールは下記ディレクトリに状態に応じて振分けされる。 未読メール  /home//Maildir/new 既読メール  /home//Maildir/cur 配送中メール /home//Maildir/tmp ・tmp→new→curの順でメールデータが移動する。 ・メールクライアント(Outlook等)で、メール受信した際の挙動は、  「サーバにメールを残す」設定した場合、new→curに格納  そうでない場合は、newから削除 個別メールのファイル名 testユーザーのcurを一覧表示してみると下記のようになっている。 # ll /home/test/Maildir/cur/ -rw——- 1 test test 3696 Jul 14 11:33 1279074839.V302I80001M709989.test.example.com:2,S -rw——- 1 … Continue reading