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

Posted in server | Tagged , | Leave a comment

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

Posted in server | Tagged , | 1 Comment

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コマンドで権限がいじれるか 確認してみたかったとちょっと後悔。

Posted in server | Tagged , , , , , | Leave a comment

[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

Posted in server | Tagged , , , , , , | 1 Comment

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

Posted in server | Tagged , , , , , , , , | Leave a comment

MacPortsのインストール手順

MacPortsは、パッケージ管理ソフトで、Unix(FreeBSD)のportsを、 MacOSXでも実現できるコマンドラインツール。 これを利用することで、簡単にパッケージの導入が可能になる。 RedHat系でいえばyum。Debian系ならapt-getといったところ。 具体的には、先日書いたGitやVimなどのソフトウェアを簡単にインストールできる。 このMacPortsのインストール手順は下記の通り。 1) MacPortsをダウンロード http://distfiles.macports.org/MacPorts/ 上記から今回は、MacPorts-1.9.1-10.6-SnowLeopard.dmgをダウンロード。 2) pkgインストール dmg内のpkgを実行して、GUIウィザードに従いインストールする。 3) 環境変数の追加 MacPortsは、/opt/local配下にインストールされる。 従って、下記のように、/opt/localにパスを通し、portコマンドを利用できるようにしておく。 $ export PATH=/opt/local/bin:/opt/local/sbin/:$PATH $ export MANPATH=/opt/local/man:$MANPATH $ cat ~/.bash_profile   ・・・確認 4) MacPortsのアップデート 最後に、MacPorts本体を最新版に、それからソフトウェア一覧も更新しておく。 $ sudo port -d selfupdate $ sudo port -d sync これにて、portコマンドにて様々なソフトウェアがインストールできるようになる。

Posted in programming | Tagged , , , , | Leave a comment

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コマンドを叩けば、うまく接続できる。

Posted in server | Tagged , , , | Leave a comment

特定URLへ検索botのアクセスを制限する

検索ロボットに巡回させたくないURLがある場合、robots.txtを設置する方法がある。 ただ、robots.txtを無視してアクセスする検索ロボットも少なくない。 確実に拒否するならば、Apache設定ファイルにてdeny指定したほうがよい。 事の発端は、wordpress pluginで自動多言語化(15言語程度)した際に、 検索ロボットが、各言語化した場所(URL)までクロールするため、 サーバにかなりの負荷がかかってしまっていた。 多言語化されたURL(巡回拒否したいURL)は下記の通り。 ex1. http://example.jp/abc/en/*****/ ex2. http://example.jp/abc/de/*****/ http://example.jp/abc//*****/といった形式のため、 LocationMatch で正規表現にてマッチさせる。 $ vi /etc/httpd/conf.d/httpd.conf #UAから検索bot判定する / no_log=ログに残さない SetEnvIf User-Agent "^Baiduspider" no_log bots SetEnvIf User-Agent "^BasicHTTP" no_log bots SetEnvIf User-Agent "^Bookmark" no_log bots SetEnvIf User-Agent "^Gigabot" no_log … Continue reading

Posted in server | Tagged , , | Leave a comment

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

Posted in server | Tagged , , , , , , , , | 1 Comment

(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

Posted in server | Tagged , , , | Leave a comment