ラベル find の投稿を表示しています。 すべての投稿を表示
ラベル find の投稿を表示しています。 すべての投稿を表示

2010年11月9日火曜日

coreserverでサーバー再移行

ここ最近、利用していたcore-bのサーバーが毎日昼間に断続的に重くなり、サイトにアクセスできなくなる状態が続いていました。

例えばその時間帯にこのkawama.jpにアクセスすると、「データベースに接続できません」というwordpressのエラー画面が表示されます。おそらく誰かがmysqlに対して負荷の高いプロセスを動かしていたのだと思います。

1ヶ月くらい様子を見ていたのですが、改善される様子もありません。
エラー画面を見るたびにイライラしてしまうのは精神的に良くないので、この週末にサーバーを引っ越ししました。

ちなみに今回はb15.coreserver.jpからb27.coreserver.jpへの引っ越しです。

あらかじめこちらのページをチェックし、負荷が高くないと思われるサーバーを選びました。

xrea障害メンテナンス情報
coreserver障害メンテナンス情報

このページでは負荷がリアルタイムで更新されています。1日に何度か除いてみて、ステータスバーがオレンジや赤になっている回数が多いようなサーバーはハズレなので避けたほうが無難だと思います。


引っ越し作業自体は今回で3回目くらい。
過去にまとめた移行手順を参照しつつ作業を行い、2時間弱ほどで終わりました。


基本的にスムーズにすすめられたのですが、2点ほど躓いた点があったのでメモしておきます。

(1)ドメインの同期設定は移行できない

ドメインウェブの設定はテキストで一括移行できるんですが、同期設定(シンボリックリンク)は移行できないので、手動で移行してやる必要がありました。

(2)パーミッションのチェック

これは以前書きましたが、xrea,coreserverのサーバー間コピーはパーミッションを保持してくれないので、666のファイルとか777のディレクトリなんかのパーミッションを移行後に変更しないといけません。

で、今回findを使って旧サーバーでパーミッションをいじってるファイル、ディレクトリを検索してリスト化し、新サーバーで一括でchmodするのを試みました。

たとえばfindで777のディレクトリを探すには

find ./ -perm 777 -type d

666のファイルを探すには

find ./ -perm 666 -type f

このpermオプション、オプションで+や-をつけてさまざまな条件を付加させられます。が、これがけっこう複雑だったので、結局は-name "*.cgi"とか-name "*.sh"でリストを作りました。


と、こんな具合で大きな問題もなく移行完了。
今度のサーバーは低負荷で安定してくれるといいんですが、、、

2010年10月29日金曜日

findを使って特定ディレクトリ以下のファイル数カウント・削除をする

findを使ってファイル数のカウント、削除をするコマンドです。

PAAPIのリクエスト2000回制限で導入した、放っておくと際限なく増えてしまうキャッシュファイルの対応用です。

特定ディレクトリ以下のファイル数カウント
/usr/bin/find /path/to/cache_dir/ -type f | /usr/bin/wc -l

最後にアクセスしたのが120分以上前のファイルを削除
/usr/bin/find /path/to/cache_dir/ -amin +120 -exec /bin/rm -f {} \;

これをcronでスケジュール化し、増え続けるキャッシュファイル対策は完了です。

参考ページ
http://mytips.exblog.jp/7558083/
http://d.hatena.ne.jp/yohei-a/20090303/1236048930
http://aligach.net/diary/20090624.html
http://www.k-tanaka.net/unix/find.html