読者です 読者をやめる 読者になる 読者になる

linux

ALMiniumのインストール

概要 ALMiniumとは、ALM(Application Lifecycle Management)とRedmineの合金(..nium)という意味で、Redmineを利用してALMを実現するためのツールです。簡単なインストーラで、Redmine・Subversion・Git・Mercurialなどプロジェクト管理に必要なツールを一通…

sysstatのインストール

概要 システムの統計情報を収集するためにsysstatパッケージをインストールします。 CentOSの標準リポジトリにあるsysstatは7.0.2と古く、8.0から追加されたpidstatコマンドも使えないので、最新のSRPMをダウンロードしてインストールします。 構成 CentOS r…

単独のサーバーの「負荷」の正体を突き止める

指標を読む ロードアベレージ # uptime 15:40:33 up 357 days, 22:34, 2 users, load average: 0.19, 0.17, 0.12 コマンド uptime。load averageに続く3つの数字が過去1分間、5分間、15分間の平均値を表します。 意味 処理を実行したいが、なにかしらの要因…

cURLを使ったファイルのアップロード

構成 CentOS release 5.6 (Final) cURL 7.15.5 (x86_64-redhat-linux-gnu) ファイルのアップロード 例としてHTTPを取り上げていますが、FTP / FTPS / SFTP / SCPについても同様です。 HTTPを使うときはHTTPサーバーがPUTを許容するように設定されている必要…

Memcacheのstatsコマンド

概要 Memcacheのstatsコマンドでどんな情報を表示できるのか、というメモ。 構成 CentOS release 5.5 (Final) memcached version 1.4.5 statsコマンドで表示できる情報 項目名 説明 例 pid プロセスID 18622 uptime memcachedの稼働時間(秒) 10699178 time…

net.core.somaxconnについて調べてみた

概要 ↓ memcachedのtcp_backlogのデフォルト値は1024で、stats settingsにも1024と表示されているのですが、 stats settings ... STAT tcp_backlog 1024 ... END↓ net.core.somaxconnがデフォルト値のままだと128に切り詰められてしまい、 # cat /proc/sys/n…

トラブルシューティングでよく使うコマンド<各種サービス編>

Unicornが8080ポートへのHTTPリクエストにレスポンスしていることを確認したい localhostの8080ポートに、/helpsを要求するGETリクエストを送信します。Unicornが8080ポートをlistenしていれば、レスポンスとして/helpsの内容が返ってきます。 $ curl http:/…

hdparmコマンドを実行すると「HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl for device」になる

構成 CentOS release 5.6 (Final) 問題 hdparmコマンドを実行すると「HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl for device」と表示されます。 # hdparm -t /dev/vda1/dev/vda1: Timing buffered disk reads: 412 MB in …

共有ライブラリの追加

概要 共有ライブラリをシステムに認識させるには、そのディレクトリを共有ライブラリ検索パスに追加する必要があります。/libディレクトリと/usr/libディレクトリはデフォルトで含まれていますが、FedoraやCentOSでは/usr/local/libディレクトリが含まれてい…

RPM Cheat Sheet

拡張子 多くのRPMパッケージにはバイナリパッケージとソースパッケージが用意されています。 バイナリパッケージであれば.i586.rpmや.alpha.rpmといったハードウェアの名前を含む拡張子が、ソースパッケージ(SRPMと呼ばれます)であれば.src.rpmという拡張…

hdparmコマンドでハードディスクを簡易ベンチマークする

概要 ハードディスクの簡易ベンチマークとして、hdparmコマンドを使う方法を紹介します。hdparmコマンドはハードディスクのパラメータを設定・取得するコマンドですが、-tオプション・-Tオプションを指定することで、シーケンシャルアクセスの読み込み速度を…

Apacheのディレクティブの意味

概要 Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)に登場するディレクティブが多すぎて、毎回覚えきれないので、少しずつまとめていくことにしました。 構成 CentOS release 5.6 (Final) Apache 2.2.3 ディレクティブ一覧 ServerTokens クライアント…

GitHubにおけるSSLの認証エラーを回避するため、EV SSL用ルート証明書を追加する

概要 2011年5月末以降、github.comにはDigiCertのEV SSL証明書(DigiCert HighAssurance EV CA-1)が使われるようになりました。しかし、CentOS 5の標準パッケージにはDigiCertのEV SSL用ルート証明書(DigiCert High Assurance EV Root CA)が含まれていな…

Jenkinsのインストール

概要 JenkinsリポジトリのRPMパッケージから、Jenkinsをインストールします。 構成 CentOS release 5.6 (Final) JDK 2000:1.7.0-fcs Jenkins 1.430-1.1 準備 JDKをダウンロードして、インストールします。そのままダウンロードすると、途中でリダイレクトさ…

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のインストール

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

リモートリポジトリの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のインストール

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

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されて、リダイレクトはログインユーザーで実行された…

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

検証環境 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…

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した時のデータが…

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

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…

サービス監視ソフトウェア『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…

NTPサーバー『ntpd』のインストール

CentOS 5.5 (Final) # yum install ntp時刻が大きく狂っていると正しい時刻が反映されないので、最初の一回は手動で同期しておきます。 # ntpdate ntp.nict.jp時刻が大きく狂っていたとき、突然正しい時刻に修正することは危険をともないます。時刻が飛ぶこ…

統合監視ソフトウェア『Zabbix』のインストール

ZABBIX-JPリポジトリの登録 # rpm -ivh http://www.zabbix.jp/binaries/relatedpkgs/rhel5/i386/zabbix-jp-release-5-3.noarch.rpmZABBIX-JPリポジトリの標準設定では1.6系が選択されているため、1.8系に切り替えます。 # alternatives --config zabbix-jp-r…

crontabの書き方

検証環境 CentOS release 5.6 (Final) コマンド crontabを編集するには、 $ crontab -ecrontabを表示するには、 $ crontab -l 設定例 # 12月31日の13:00に実行します。 00 13 31 12 * ~/bin/script.bash # 毎週月曜日の15:00に実行します。 00 15 * * 1 ~/bi…

swfmillとswfmill_rubyのインストール

CentOS 5.5 (Final) swfmill 0.3.1 いろいろハマッたので、最終的にインストールに成功するまでの経緯を残しておきます。なお、swfmill 0.3.1より前のパッケージは、Flash Lite 1.xの日本語エンコーディング形式であるcp932に対応していません。0.3.1より前…

GNU AutoconfとGNU m4のインストール

概要 GNU Autoconfはシステムに最適化したconfigureファイルを生成するプログラムです。m4に依存しています。m4はUNIX系システムに標準で付属するマクロプロセッサです。GNU m4はm4 SVR4版にいくつかの機能拡張が施されています。どちらのインストールも、./…

ファイルの各行から一部分を切り出す cut

構文 cut -b<byte position> <filename> cut -c<char position> <filename> cut -f<field position> [-d<delimiter>] <filename>delimiterを省略するとタブ文字が区切り文字として扱われます。 例 5Byte目を切り出す $ cut -b5 access.log 5Byte目と10Byte目を切り出す $ cut -b5,10 access.log 5Byte目から10Byte目までを切り出す $ cut -b5-10 acces</filename></delimiter></field></filename></char></filename></byte>…

Gitのインストール

概要 Gitをインストールし、共有リポジトリを作成してみます。GitはLinus Benedict TorvaldsによってLinuxのソースコードを管理するために作られた分散型バージョン管理システムです。 構成 CentOS 5.5 (Final) Git 1.7.4.rc2 インストール yumパッケージで…

telnetコマンドでメールを送信する

$ telnet mail.foobar.jp 587 Trying 192.168.10.19... Connected to mail.foobar.jp (192.168.10.19). Escape character is '^]'. 220 mail.foobar.jp ESMTP HELO foobar.jp 250 mail.foobar.jp MAIL FROM: mail_from@foobar.jp 250 ok RCPT TO: mail_to@fo…

TCPポートで接続できるかを確認する

$ telnet TCPポートで接続できるかを確認するには、telnetコマンドが便利です。 $ telnet 192.168.10.19 25 Trying 192.168.10.19... Connected to 192.168.10.19 (192.168.10.19). Escape character is '^]'. 220 192.168.10.19 ESMTP Postfix たとえば、サ…

ネームサーバーに問い合わせを行う dig(とnslookup)

digとはdomain information groperの略で、ネームサーバーに問い合わせを行い、その応答結果を表示するコマンドです。digとよく似た機能を提供するコマンドにnslookupがあります。その違いは、nslookupがネームサーバーからの応答を見やすいように加工して表…

MuninによるNginxの監視

Muninのプラグインリポジトリ Munin Exchange からプラグインをダウンロードします。 # cd /usr/share/munin/plugins # wget http://exchange.munin-monitoring.org/plugins/nginx_status/version/3/download -O nginx_status # wget http://exchange.munin-…

Ruby Enterprise Editionのインストール

環境 CentOS 5.5 (Final) Amazon Linux 2010.11.1 (beta) 念のため、既存のyumパッケージをアップデートしておきます。 # yum check-update # yum update 開発ツール一式(GCCなど)をインストールします。 # yum groupinstall "Development Tools" ビルドに…

新しいユーザーを作成する

環境 CentOS 5.5 (Final) Amazon Linux 2010.11.1 (beta) fooユーザーを作成します。 # adduser foo # id foo uid=500(foo) gid=501(foo) groups=501(foo) wheelグループに追加します。usermod -Gの第一引数には、いま所属しているグループも含めて所属させ…