2010年01月25日

ファイルロック処理が実装されてないログファイルを、なるべく安全にログローテート

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

思わず手直ししたくなるスクリプト

「ログを吐き出しているけど、ロック処理が無い…」と言う、何とも初歩的なスクリプトがあったとする。
そんなログをローテートしたい。

▼要望

  • ログローテートする
  • ログは全て保存し、消さない
  • ファイル名に日付を付けたい

▼/etc/logrotate.d/foo-bar

/var/log/foo-bar.log {
    daily
    rotate 1
    missingok
    create 0644  www-data www-data
    sharedscripts
    postrotate
      basename=/var/log/foo-bar.log
      suffix=`date -d '1 day ago' +%Y%m%d-%s`.$$
      srcfile=${basename}.1
      dstfile=${basename}.${suffix}
      if [ -f ${srcfile} -a ! -f ${dstfile} ]; then
        (mv ${srcfile} ${dstfile} && gzip ${dstfile}) || :
      fi
    endscript
}

▼手動でローテートしてみる

$ sudo logrotate -f /etc/logrotate.d/foo-bar
$ sudo logrotate -f /etc/logrotate.d/foo-bar

$ ls -la /var/log/foo-bar*

▼作業後確認項目

  • 複数のログが生成されていれば良い
  • あとは日時ローテートされている事を確認出来れば良い
後書き

スクリプトでのロック処理実装は置いておくとして、

  • logrotate設定ファイル内にファイル操作処理を記述出来るのは嬉しい。
  • サーバ管理においてはシェルスクリプトを書ける事、それは大きな武器だと再認識。



2010年01月23日

whois.hansode.org(73/n) - Amazon EC2へ論理移転

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

今更ながら

昨年末にsakuraの契約が切れるので、Amazon EC2へ論理移転を行った。
これで2度目の論理移転。


ドキュメントは未来の自分へのラブレター

開発環境構築手順。
それと、以前論理移転した時に追加した手順。

必要なものは、可能な限りDebianパッケージ化してある。
すると、3つだけで環境構築が終わる。
Debianだと楽でイイね。

$ sudo dpkg --set-selections < ./dpkg.list
$ sudo apt-get install -f
$ svn checkout [ repos uri ]

あとはDBのデータ同期、/etcの設定(apache,mysql)


Amazon EC2で更にオイシイ

Debianパッケージ化してあるおかげで環境構築は楽になる。
Amazon EC2だと、仮想マシンイメージを丸々バックアップが可能だ。

仮想マシンイメージをプライベートイメージとして登録しておけば、
レプリカを手軽にいくつでも起動出来る。

これ以降、ElasticfoxなどでプライベートAMI指定して起動するだけ。
apt-getを実行しなくて良い。



2009年10月26日

作業PCをWindows 7にした

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

Windows 7 Professional
Windows 7 Professional
posted with amazlet at 09.10.26
マイクロソフト (2009-10-22)
売り上げランキング: 79

Windows Vista ⇒ Windows 7

すっきりさっぱりクリーンインストール。

大したアプリケーションをインストールしているわけでもなく、
こだわり設定をしているわけではない。

本を読みながら環境構築。
いろいろやりつつ、2時間で終了。

今の所、快適そのもの。



半袖 at 16:25|PermalinkComments(0)TrackBack(0)独り言 

2009年10月22日

[Wakame]Wakameの開発にご協力くださる方を探しています

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

■急募:"Wakame 1.0"開発協力者!

株式会社あくしゅでは"Wakame 1.0"の開発者を募集しています!
Wakameは次世代データセンターには欠かせないクラウドコントローラとして、今後大幅に機能拡張していきます。
Rubyでミドルウェアを開発してみたいという意欲あふれる方は是非お問い合わせください。

■仕事内容

  1. "Wakame 1.0"の使用目的を拡大するために、ミドルウェア部分の機能拡張を実施
  2. "Wakame 1.0"を使いやすくするために、GUIの追加開発を実施
  3. "Wakame 1.0"を分かりやすくするために、ドキュメントの整備を実施
上記の内、得意なもの1つ以上をお願いすることになります。

■募集要項

  • 下記(A)(B)(C)の知識・技術セットをいずれかお持ちの方
    1. Ruby, 現在のWakame, メッセージング, 並列処理, Xenなどのハイパーバイザの知識
    2. JavaScript, XHTML, Ruby on Rails, http通信(REST), ユーザビリティ, 画面設計の知識
    3. HTML, ドキュメンテーション
  • システムの設計が得意で、オブジェクト指向を理解している方
  • 人とのコミュニケーションが好きな明るい方
  • 期間:2009年11月初旬〜2010年3月下旬

■条件

応募期限は10/26(月)までです。
それ以降10/30(金)までに一度仕事内容や関わり方をミーティング形式でご相談させていただきましてその後、弊社基準で判断してからお見積もりをお願いします。

■一言

設立3年目の若い会社です。
来年からは「世界のクラウドソリューションを」をテーマに事業展開していく予定です。
そのために今後は弊社で開発している"Wakame"を機能拡張し、より高度なプロダクトへと躍進させていきます。
あなたもぜひ、この新しいチャンスに乗ってみませんか?

■連絡先

Twitter: @axsh_co_ltd
E-mail: r_at_axsh_dot_net (_at_と_dot_は適宜文字列を置換してください)




半袖 at 14:50|PermalinkComments(0)TrackBack(0)Wakame 

2009年10月20日

DHCP―ホスト設定サーバの設定・運用・管理

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

DHCP―ホスト設定サーバの設定・運用・管理
江面 敦 矢吹 道郎
テクノプレス
売り上げランキング: 295608

ISC DHCPの解説本

DHCPについて書かれた貴重な一冊。
2003年の出版と言う事が手伝ってか、本屋で見かける事は少ない。

少しこだわった運用・管理をしたい場合の設定事例が紹介されている。

▼目次より

  • DHCPについて
  • ISC DHCP
  • DHCPサーバの設定-準備編-
  • DHCPサーバの設定-超基本編-
  • DHCPサーバの設定-基本編-
  • DHCPサーバの設定-応用編-
  • 設定例

最近ではISC DHCPではなく、dnsmasqが使われ始めているのだろうけど、
まだまだISC DHCPが使われる場面はあるので、手元に置いておきたい一冊。



半袖 at 09:40|PermalinkComments(0)TrackBack(0) 

検証のため、どうにかしてCPU使用率を高める

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

「CPU使用率を高めたい」

隣に座っている人に質問された。
何をやっているのか見てみると、whileループでechoさせていた。

▼例

while :; do echo asdfasdf; done

foregroundで実行しているではないか。
backgroundで複数実行する事を伝えてみたけど、伝わらなかった。
キーボードを拝借。

$ cat >>EOS < perf.sh
#!/bin/sh
while :; do echo asdfasdf; done
EOS
$ chmod +x pref.sh
$ ./pref.sh &

いくつか実行したら95%くらいCPUを使うようになっていた。

forkしすぎに注意。
何事も程々に。



半袖 at 01:15|PermalinkComments(3)TrackBack(0)ほげり道 

そういえば、しばらく書いてないな

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

書かない癖がついてしまった

反省してます。



半袖 at 01:00|PermalinkComments(0)TrackBack(0)独り言 

2009年09月20日

図解でわかるLinux環境設定のすべて

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

図解でわかるLinux環境設定のすべて
西村 めぐみ
日本実業出版社
売り上げランキング: 16140

こんな本を探していた

Linuxの起動とinitの解説が書かれた本を探していた。
いくつかの本屋で探してみたけど、丁度良い本見当たらなかった。
そして、ついに見つけたのがこの一冊。

Linuxをある程度使った人向けの一冊だ。
ApacheやMySQLに関する内容は載っていない。
そもそも、載っていなくていい。

他とは違う一冊に仕上がっている。

  • 設定のしくみ
  • initとは
  • 定期実行って?
  • マウント
  • ext2とext3
  • ReiserFS
  • autofs
  • NFS/Samba/smbfs
  • ユーザー管理
  • シェルオプション
  • 環境変数・シェル変数
  • 日本語環境
  • フォント
  • XDMとstartx
  • Xサーバ
  • ネットワークの基本
  • inetd/xinetd
  • SSH
  • ブートローダ
  • LILO/GRUB
  • カーネル再構築


半袖 at 23:20|PermalinkComments(0)TrackBack(0) 

whois.hansode.org(72/n) - whois情報3000万レコード弱

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

5文字(.com|.net)のクロールが終わった

whois.hansode.org(71/n) - whois情報1000万レコード超え から約3ヶ月。
ようやく5文字(.com|.net)のクロールが終わった。

▼2009/09/20 12:55現在

只今の蓄積WHOIS情報数:
28,655,964 WHOIS!!

さて、次は何をしようか。



2009年08月20日

10分で巨大ストレージを調達する

livedoorClipに登録 clip | このエントリーをはてなブックマークに追加 はてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

概要

  • s3fsを使い、Amazon S3をファイルシステム扱いする

前提条件

  • Amazon Web Serviceのアカウントを持っている事
  • s3foxなどでAmazon S3にバケットを作っておく事

作業環境

作業内容

■UNIXグループ設定

  • AWSのキーを/etc/passwd-s3fsに設定(記述)する必要がある
    • 一般ユーザーに見せたくないので、特定アカウント/特定グループにのみ公開する
      • 特定ユーザー名: ubuntu
      • 特定グループ名: s3fs
  • ⇒と言う事で、グループ設定する

▼グループ名「s3fs」存在有無を確認

$ getent group s3fs

▼「s3fs」グループ作成

$ sudo addgroup --system s3fs

▼「s3fs」グループが作成された事を確認

$ getent group s3fs
s3fs:x:120:

▼ubuntuを「fuse」と「s3fs」に追加

$ sudo vigr

▼ubuntuが「fuse」と「s3fs」に追加された事を確認

$ getent group fuse
fuse:x:106:ubuntu
$ getent group s3fs
s3fs:x:120:ubuntu

▼s3fsビルド環境整理

必要に応じてパッケージをインストール。
今回は下記パッケージが不足していたのでインストール。

$ sudo apt-get install libcurl4-gnutls-dev
$ sudo apt-get install libxml2-dev
$ sudo apt-get install libfuse-dev

▼s3syncをビルド

$ wget http://s3fs.googlecode.com/files/s3fs-r177-source.tar.gz
$ tar zxvf s3fs-r177-source.tar.gz
$ cd s3fs
$ make

▼s3fsをインストールし、setgid設定

$ sudo install -m 2755 -o root -g s3fs ./s3fs /usr/local/bin/s3fs
$ ls -la /usr/local/bin/s3fs
-rwxr-sr-x 1 root s3fs 697215 Aug 19 07:17 /usr/local/bin/s3fs

▼/etc/passwd-s3fs作成

$ sudo vi /etc/passwd-s3fs
---
accesskey_id:secret_accesskey_id の形式で記述
---

▼s3fsグループのみ公開する

$ sudo chown root:s3fs /etc/passwd-s3fs
$ sudo chmod 640 /etc/passwd-s3fs

■実際にマウントしてみる

  • S3バケット名: s3fs-sandbox-bucket
  • マウントポイント: /home/ubuntu/mnt-s3fs

▼ユーザー確認

$ whoami
ubuntu

▼マウントポイント作成

$ cd
$ pwd
/home/ubuntu
$ mkdir mnt-s3fs

▼Amazon S3をs3fsでマウント

$ s3fs s3fs-sandbox-bucket mnt-s3fs/

▼マウント状況を確認

$ mount | grep s3fs
s3fs on /home/ubuntu/mnt-s3fs type fuse.s3fs (rw,nosuid,nodev,user=ubuntu)

▼dfを実行してみる

$ df /home/ubuntu/mnt-s3fs
Filesystem           1K-blocks      Used Available Use% Mounted on
s3fs                 274877906944         0 274877906944   0% /home/ubuntu/mnt-s3fs
$ df -h /home/ubuntu/mnt-s3fs
Filesystem            Size  Used Avail Use% Mounted on
s3fs                  256T     0  256T   0% /home/ubuntu/mnt-s3fs

dfには256Tとして認識されている。
Amazon S3の容量に上限は無い。
いつまでもディスク使用率「0%」となるはずだ。

▼lsしてみる

$ cd mnt-s3fs
$ ls -la
total 0

▼ファイル生成

$ touch foo.txt
$ ls -la
total 1
-rw-r--r-- 1 ubuntu ubuntu 0 Aug 20 03:14 foo.txt
$ date | tee date.txt
Thu Aug 20 04:31:22 UTC 2009
$ ls -la date.txt
-rw-r--r-- 1 ubuntu ubuntu 29 Aug 20 04:31 date.txt
$ cat date.txt
Thu Aug 20 04:31:22 UTC 2009
$ df /home/ubuntu/mnt-s3fs
Filesystem           1K-blocks      Used Available Use% Mounted on
s3fs                 274877906944         0 274877906944   0% /home/ubuntu/mnt-s3fs

極小ファイルとは言え、ファイルを生成した。
しかし、使用サイズに変化が見られない。
Amazon S3の無制限を表している。


あとがき

  • Amazon S3をファイルシステムとして扱えるのが面白い
  • 手元の環境に巨大ストレージを構築可能となってしまった
  • しかも、共有ストレージとして利用が可能だ。遅いNFSのようなもの。
  • リアルタイム性が求められる場面、更新頻度が高いファイル(例えばアクセスログ)にはs3fs(Amazon S3)は向かない。

Amazon S3の特性・性質を十分理解した上でs3fsを上手に使えば、様々な利用方法が考えられる。
s3fsは面白いので、色々とハックしてみる予定。



半袖 at 14:25|PermalinkComments(0)TrackBack(0)AWS