技術

Ruby 1.9.2のインストール

概要 Ruby 1.9.2のソースコードからRPMパッケージを作成し、インストールします。 構成 CentOS release 5.6 (Final) checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux] 準…

checkinstallのインストール

概要 ソースコードだけでパッケージが提供されていない。アンインストールの手間などを考えるとパッケージ管理システムで一元管理したいが、独自にパッケージを作成するノウハウはない。多くのソフトウェアがパッケージで提供されるようになったいまでも、こ…

GitのリモートリポジトリのURLを変更する

概要 git remote add origin 〜でタイポして間違ったURLを登録してしまったり、中央リポジトリが引っ越してしまった場合に、リモートリポジトリのURLを変更する方法です。 構成 git-core @1.7.6.1_1+doc+pcre+python27 git-flow @0.4.1_0 URLの変更方法 $ gi…

Zabbixプロキシサーバのインストール

概要 Zabbixプロキシサーバをインストールします。 構成 CentOS release 5.7 (Final) Zabbix Proxy v1.8.8 (revision 21965) (28 September 2011) ZABBIX-JPリポジトリのインストール ZABBIX-JPリポジトリをインストールします。 # rpm -ivh http://www.zabb…

Zabbixエージェントのインストール

概要 Zabbixの監視対象とするノードに、Zabbixエージェントをインストールします。 構成 CentOS release 5.6 (Final) ZABBIX-JPリポジトリのインストール ZABBIX-JPリポジトリをインストールします。 # rpm -ivh http://www.zabbix.jp/binaries/relatedpkgs/…

spiderストレージエンジンのインストール

概要 spiderストレージエンジンはMyISAMやInnoDBと同じMySQLのストレージエンジンであり、斯波健徳氏によって開発されています。spiderストレージエンジンは、それ自身ではデータを持たない変わったストレージエンジンです。代わりに、異なるMySQLインスタン…

ImageMagick + RMagickのインストール

概要 ImageMagickとRMagickをインストールします。 構成 CentOS release 5.7 (Final) ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux] バージョンの選択 今回のプロジェクトではRuby 1.9 + Rails 3を使うことが決定しています。http://rmagick.r…

yum-prioritiesのインストール

概要 パッケージをアップデートしたとき、追加リポジトリに公式パッケージよりも新しいバージョンがあると、意図しない不安定なバージョンをインストールしてしまうことがあります。そのため、意図的に追加リポジトリからインストールするとき以外は、追加リ…

デプロイと同時にbundle installを実行する

検証環境 Ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux] Rails 3.0.10 Bundler version 1.0.18 Capistrano v2.8.0 準備 準備といってもやるべきことはひとつだけです。BundlerにはあらかじめCapistrano用のcapタスクが用意されているので、$RA…

sudoしているのに、リダイレクトすると「許可がありません/Permission denied」になる

構成 CentOS release 5.6 (Final) GNU bash version 3.2.25(1)-release (x86_64-redhat-linux-gnu) 問題 リダイレクトすると「許可がありません/Permission denied」と表示されます。これはlsのみがsudoされて、リダイレクトはログインユーザーで実行された…

mymemcheckによるmy.cnfの妥当性チェック

概要 KLab株式会社さんの自家製ツールであるmymemcheckを使うと、my.cnf(もしくはSHOW VARIABLESの結果)をもとに、 最低限必要な物理メモリの大きさ IA-32のLinuxでのヒープサイズの制限 innodb_log_file_sizeの最大サイズ をチェックすることができます。…

シェルスクリプトの二重起動禁止

検証環境 Fedora release 8 (Werewolf) Bash GNU bash, version 3.2.33(1)-release (i386-redhat-linux-gnu) プロセスを見る方法 [ $$ != `pgrep -fo $0` ] && { echo 'Cannot run multiple instance.' >&2; exit 9; } $$ 自分自身のプロセスID pgrep パター…

RVMのインストール 〜 CentOS 5.6編

検証環境 CentOS release 5.6 (Final) RVM 1.6.31 インストール 依存パッケージをインストールします シェルのバージョンを確認します。 $ bash --version GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu) Copyright (C) 2005 Free Software…

RDocでドキュメントを生成する

ドキュメントを生成する前にRDocをアップデートする場合は、 re RDocのアップデート - 祈れ、そして働け 〜 Ora et labora とりあえず生成してみる $ rdoc.rbファイルがあるディレクトリに移動して、rdocコマンドを実行します。RDocを意識したマークアップを…

EBSボリュームのマウント

EBSボリュームのアタッチ Attach Volumeボタンを押します。 ダイアログが表示されたら、EC2インスタンスを選択し、デバイス名を入力します。 ファイルシステムの作成 # ls -l /dev/sd* brw-r----- 1 root disk 8, 1 Jun 17 17:41 /dev/sda1 brw-r----- 1 roo…

MySQLデータディレクトリの移動

Fedora release 8 (Werewolf) MySQL Ver 14.12 Distrib 5.0.45 # /etc/rc.d/init.d/mysqld stop Stopping MySQL: [ OK ]MySQLを停止します。 # mkdir /mysql # cp -rp /var/lib/mysql/* /mysql # mv /var/lib/mysql /var/lib/mysql.bak移動先となる/mysqlデ…

シャットダウンの予約

検証環境 CentOS release 5.6 (Final) シャットダウンの予約 19:50にサーバーをシャットダウンします。シャットダウンを予約すると、即時、すべてのログインユーザーに19:50になるとサーバーがシャットダウンされる旨が通知されます。 # nohup shutdown -h 1…

SWF出力ライブラリ『Ming』

Ming 0.4.3 Ubuntu - Amazon Linux release 2011.02.1.1 (beta) インストール for Ubuntu Ming # cd /usr/local/src # wget http://jaist.dl.sourceforge.net/sourceforge/ming/ming-0.4.3.tar.gz # tar zxvf ming-0.4.3.tar.gz # cd ming-0.4.3 # ./configu…

VPSのチューニングに役立ちそうな記事

さくらVPSで一日6万PVを処理するためにしたこと - 新卒インフラエンジニア2年目 さくらのVPS 512で6万PV/日のサイトを運用するため、ApacheやPHPに施したチューニングがまとめられています。

nkfによる文字コードの変換

# nkf --guess index.php EUC-JPファイルのエンコードを確認します。 # nkf -Ew index.php -Eは入力形式をEUC-JPに、-wは出力形式をUTF8に指定します。index.phpを読み込み、変換した結果を標準出力に出力します。 # nkf -Ew **/*.php | nkf --guess# nkf -E…

トラブルシューティングでよく使うコマンド<Linux・メモリ編>

現在のメモリの使用状況 # cat /proc/meminfo 項目 説明 MemTotal 物理メモリ搭載量 MemFree 空きメモリ容量 Buffers Bufferのサイズ Cached PageCacheのサイズ SwapCached Page outされていたページをPage inして、まだディスクにPage outした時のデータが…

bashにおけるヒストリのインクリメンタルサーチ

$プロンプトが表示されている状態で、 (reverse-i-search)`':Ctrl+rを押すと上記のプロンプトが表示されます。 (reverse-i-search)`ls': ls /var/log/nginx/例えば"ls"と入力すると、その文字列を含むコマンドを探します。 (reverse-i-search)`ls': vim app/…

トラブルシューティングでよく使うコマンド<ネットワーク編>

Linux 疎通を確認する ICMP(インターネットプロトコルと同じネットワーク層のプロトコル)で疎通を確認したい。 # ping www.mydomain.com通信経路を確認したい。 UDP(デフォルト) # traceroute www.mydomain.com # traceroute --udp www.mydomain.com ICM…

トラブルシューティングでよく使うコマンド<Linux・ディスク編>

# du -h /var/lib/var/libディレクトリ配下のディレクトリの大きさを、再帰的に表示します。大きさには単位を付与します。 # du -hs /var/lib/var/libディレクトリの大きさを表示します。大きさには単位を付与します。 # du -h | grep [0-9]Gカレントディレ…

プロセスのメモリ使用量を計算する

構成 CentOS release 5.5 (Final) 手順 例として、Zabbixサーバーのメモリ使用量を計算してみましょう。まずはZabbix関係のプロセスをgrepします。 # ps -ely | grep zabbix以下の出力例では読みやすさのためにヘッダ行を追記しています。上記のコマンドでgr…

後置判定の繰り返し文

繰り返す内容を最低一回は実行したい、というときに使う後置判定の繰り返し文ですが、Rubyではこう書きます。begin〜endで括るのがポイントです。while文 begin # 繰り返す内容 end while 継続条件 until文 begin # 繰り返す内容 end until 終了条件

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes

概要 mysql-develをインストールしたところ、依存関係に引きずられてMySQL本体のバージョンも上がってしまいました。エラーによってMySQLを起動できなくなったため、InnoDBログファイルを作り直すことで修正しました。 問題 mysql-develをインストールしたと…

サービス監視ソフトウェア『Monit』

インストール CentOSの標準リポジトリには存在しないので、rpmforgeリポジトリを追加します*1。 rpm -ivh http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.5.1-1.el5.rf.i386.rpmインストールします。 # yum install monit --enabler…

Nginxでcould not build the server_names_hashを解決した件

CentOS 5.5 (Final) Nginx 0.8.54 Nginxの設定ファイルをテストしたところ、「server_names_hash_bucket_sizeを大きくしなさい」というエラーメッセージが表示されました。 # /etc/rc.d/init.d/nginx test [emerg]: could not build the server_names_hash, …

RMagickのLoadErrorで迷走した件

CentOS 5.5 (Final) # unicorn_rails -D -E production -c config/unicorn_production.rbUnicornを起動すると次のようなエラーが発生して、起動に失敗しました。どうやら共有ライブラリ libMagickCore.so.4が認識されていないようです。 FILE: $RAILS_ROOT/l…