仙台の山奥で自転車に乗ったり転んだり

愛車の GIOS でサイクリングしたりポタリングしたり、それをブログに記録してみたり。ロードバイクや自転車や坂のことを書いてみたり。ときたまプログラムのことを忘れないようにメモってみたり。

2012-01-01から1年間の記事一覧

バッチ処理のログから処理時間だけを抜粋して平均を計算

あるサーバで5分毎に実行しているバッチ処理があって、毎回の処理でどの程度の処理時間がかかっているのか、サーバの負荷と比較したときに処理時間は比例するのか……など調べていた。 細かな解析についてはスクリプトを用意してゴリゴリと解析していたんだけ…

kSarでsarコマンドの出力をグラフ化、と日本語の文字化け

先日仙台のインフラ勉強会に参加して、藤田さんが発表でちょっと見せてくれたkSarが良さげだったので試してみました。前に試したときは、良さを堪能できなかった、というか英語で使いこなせなかったのですが、コンソール上でsarが出力する数字と睨めっこする…

VPSのCentOSマシンにmoshをインストール

出先からちょっとしたサーバのメンテナンスをする機会があるので、Moshおもしろそうだなーと思っていたんですが、導入の手順をみていてコンパイルなり必要になりそう……と躊躇していまいた。 ちょっとした機会でMoshを実際に使っている実例をみたので、この機…

JPEG画像の上下左右に余白を設ける

表題のとおり、(目的のサイズよりも縦横ともに小さいが)縦横のサイズが不定な不特定多数のJPEG画像を、全て同じ大きさの画像サイズに変換したい。元の画像は目的のサイズよりも必ず縦横どちらも小さいので、変換によって発生する余白は全て白にしたい。「I…

コンソールで設定ファイルを編集して、作業メモなどとして転載するとき、ヒアドキュメントを使うとスマートだよね、というメモ

表題でメモは完了している、という話しですが。 # cat > /etc/syslog/hoge <

コンソールで設定ファイルを編集して、作業メモなどとして転載するとき、ヒアドキュメントを使うとスマートだよね、というメモ

表題でメモは完了している、という話しですが。 # cat > /etc/syslog/hoge <

バックアップのチェックサム

サーバをiDC「A」からiDC「B」に移転して、一段落もついてiDC「A」のクローズ準備をしていました。サービスはiDC「A」に移転して正常に稼働をしてからしばらく経つので、基本的にiDC「B」にはクリティカルな残り物はないはず。という前提はあるものの、この…

コンテンツのバックアップ

コンテンツをバックアップするスクリプトを書き上げてから、こんな単純な要求に対して複雑すぎる……感が半端ない。無駄かー (テストで)「/etc/」以下と、「/var/log/」以下をバックアップ バックアップは25日間保存 「/srv/contents-backup-datastore」以下…

PostgreSQLのメンテナンススクリプト

VACUUMを実行するバッチのスクリプト 常態的に日次で実行したいので、「FULL」のオプションはつけていません。 「FULL」のオプションがないので、テーブルのロックなどは発生しないと考えています。 不定期的なサーバメンテナンスのタイミングで、手動で「FU…

CakePHPで複合主キーと仲良くやる

CkaePHPのO/Rマッパー(?)は複合主キーに非対応なので、自前でCRUDを実装する前提の方がうまくいくと思います。 DataSourceクラスが便利なので、上手く使えば意外とスムーズに実装できたりできなかったり……。でも、せっかくだから自動化できる部分は活用し…

データベースの設定が混在している環境のテストケース

デフォルトのデータベースとして「MySQLのデータベースその1」を利用して、「MySQLのデータベースその2」や「Oracleのデータベース」なども混在して利用するという開発環境での話し。 この環境でデフォルトではない「Oracleのデータベース」を利用するモデル…

CakePHPからPostgreSQLの正規表現を利用する、きっと冴えたやり方

実際のとこ、かなり泥臭いやり方なので全然冴えてはいないところですが……。あるマスタのテーブルドには、番号体系の正規表現を保存した列がある。 ユーザは、入力したコードを番号体系の正規表現でパターンマッチングして、マスタから特定のレコードを検索す…

CakePHP のモデルで任意の SQL を実行するノウハウ

業務系のバックエンドをWebアプリケーションと連携するときなど、複合主キーで CakePHP が上手く操作できなくて、効率良く操作できないものかと悩んだ際のメモです。こんなやり方がいいのかは微妙ですが、復号主キーのテーブルを一つのモデルとして利用した…

誕生日から年齢を計算?

php

テストもしてないどころか動かしてもいないけど、勢いで殴りがいてみた。 /** * 誕生日から年齢を算出 * * @param string $birthdayDay 誕生日(UNIX タイムスタンプに変換する日付の書式) * @param string $today 今日(UNIX タイムスタンプに変換する日付…

ソーシャルゲームとかの話題で出てくる「IP」って?

知的財産権(Intellectual Property Right)のこと? いや、話しの趣旨とかからしてそうなんだろうけど……。 誰に質問していいのやら、素朴な疑問。

Apacheの起動失敗

不安定なWebサーバを再起動でしのごうとしたら、問題なく終了したサービスが起動してこない……。 あせってネットワークを再起動したり迷走したけど、よく確認したら終了しないで生き残ったプロセスがいるから、80番ポートが解放されていないのが原因でした。 …

最近の履歴からメモ

(UTF-8)でデータベースクラスタを初期化したPostgreSQLで、EUC-JPのデータベースを作成する。 $ createdb -U postgres -h localhost --encoding EUC_JP --locale=ja_JP.EUC_JP --template=template0 {dbname} 特権なしのユーザを作成 $ createuser -U post…

bash の read でバックスラッシュをエスケープ文字として扱わない

プログラムの検証で、何千パターンかの引数をリストアップしたファイルをもとに、プログラムを逐次実行して検証していたら、バックスラッシュを含むパターンだけ失敗していた。イメージ $ cat pattern.txt | while read TEST; do ~/test_method "${TEST}"; d…

bash の for文でループ

毎回、忘れて調べなおしている気がする……メモ「$(seq 1 100)」 $ for i in $(seq 1 100); do USER=`printf User%04d $i`;sh hoge.sh $USER >> ~/users.txt; done; とか

新しいサーバで shared_memory_size.pl を実行しようとするたびに、Linux::Smaps モジュールがなくてつまづくのでメモ ついでに、自分のユーザで一回やってから、rootユーザじゃなきゃ権限ないじゃん……、てのも何度も繰り返した。cpanm をインストールする前…

デフォルトゲートウェイが別々の(パブリックな)ネットワークでサブネットを越せないネットワークで、デフォルトゲートウェイを追加して(?)やってルーティングを通す。 # route add -net 192.168.0.0 gw 192.168.42.1 metric 1 netmask 255.255.0.0 eth0

むりやりPostgreSQL版も

↑で作成したバックアップのスクリプトを、無理やりPostgreSQL版にも移植してみた。 PostgreSQLサーバの接続可能なデータベース一覧からバックアップ対象のリストを取得する処理など、かなり強引で無理やりな感じになっちゃいました。 #!/bin/sh set -e set -…

バックアップのスクリプト

汎用的なMySQLサーバのデータベースをバックアップスクリプトです。システムの仕様でバックアップはNASに保管するので、バックアップデータをマウントしたNFSに保存しています。 ついでにバックアップが必要になった時のケースや障害の内容などにあわせて、…

サーバ間のデータベース移行

すごく単純に、PostgreSQLサーバの一部のデータベースを移行する必要があって、かなりの数だから pg_dumpall 使ったり、psql コマンドの -l オプションでリストアップしたり……とか一括で処理しようと思った。 でも、該当のサーバでは多数のデータベースが稼…

古いサーバで稼働していたWebアプリケーションの移植

古いサーバで稼働していたシステムを、新たらしい仮想環境に移植したときの、大雑把なメモです。 データベース(PostgreSQL)の移行 デーベースサーバも新しい環境に移行したものの、サーバ間はVPNがあったのではまることなく楽でした。新しいサーバにユーザ…

PHPの依存関係を調整してNagiosをインストール

NagiosパッケージもRPMforgeリポジトリをつかってyumで管理する。NagiosのパッケージもPHP5.1に依存しているので、依存関係を調整してインストールする。監視先のサーバにNRPEをインストールしておく。 #!/bin/sh set -e set -u LOCALHOST="127.0.0.1" NAGIO…

PHPの依存関係を調整してCactiをインストール

RPMforgeリポジトリをつかえばCactiのパッケージをyumから管理できるけど、NagiosのパッケージがPHP5.1依存していて、RPMforgeリポジトリからインストール済みのPHP5.3パッケージと干渉してしまう。 Cactiをインストールするときの依存関係チェック以外では…

[CentOS][Cacti] NRPEでモニタリングするときのテンプレートって?? どうするのがモダンなのかが分からなかった……、いろいろ悩んだけど公式サイトにあるオフィシャルのSNMPのテンプレートをベースに用意してみた。なんだか手探りだけど方向性を間違っている…

Mac間の設定の共有

家のMacと会社のMacと持ち運ぶAirと、それぞれの環境をいいかげんに管理しているので、たまにちょっとした設定の違いでイライラすることがある。 設定ファイルはなるべくネットワーク上で共有しているし、その設定を個別に流用とかしていたので、環境ごとの…

リストアップ済みのパッケージをyumでインストールするスクリプト

複数台のCentOSを準備するために、同じパッケージのインストール作業を自動化するためのシェルスクリプトを用意しました。 自動化という意味ではもっと素敵な方法あると思いますが、マニュアルライクな対応ができてステキ……というか、手抜きな対応なのです (…