2008年11月15日
イメージマジック imagemagick 変換できる画像の種類の一覧
convert -list format
2008年11月07日
OPENできるファイルの数
procファイルシステムの以下の項目を読むことで、fsに関する事がわかります。
procファイルシステムにはこれ以外にもたくさんの情報があります。
/proc/sys/fs/file-max
ファイルハンドルの最大数
/proc/sys/fs/file-nr
file-nr 内の 3 つの値は、割り当てられたファイルハンドルの数、未使用のファイルハンドルの数、ファイルハンドルの最大数、を示しています。
割り当てられたファイルハンドルの数が最大数に近いが未使用のファイルハンドルの数が 0 よりもかなり大きいならば、ファイルハンドル使用のピークでそれだけ使ったということを示しており、最大数を増やす必要はありません。
2008年11月05日
rcp scp rsh などは
192.168.10.10から接続したい場合、
接続先のサーバーで
echo rsh >> /etc/securetty
echo 192.168.10.10 root >> /root/.rhosts
yum install rsh*
chkconfig rsh on
/etc/init.d/xinetd restart
2008年10月04日
MRTG で DISK I/O
DISK I/Oに関する情報は /proc/stat に入ってます。これを使うのが一番手軽な方法かと・・
(ちなみに、カーネルによって/proc/statの場合と/proc/diskstatsの場合があります)
ローカルマシンが対象ならばこんなかんじでスクリプトをまず作ります。
#!/usr/bin/perl use FileHandle; my $fh = FileHandle->new("cat /proc/stat|"); while(<$fh>){ if(/^disk_io: \([^(]+\([0-9]+,[0-9]+,([0-9]+),[0-9]+,([0-9]+)\)/) { print "$1\n"; print "$2\n\n\n"; } } close($fh);
リモートが対象ならば
#!/usr/bin/perl open(SSH,"ssh 192.168.1.6 cat /proc/diskstats |"); while( ){ if(/hda [0-9]+ [0-9]+ ([0-9]+) [0-9]+ [0-9]+ [0-9]+ ([0-9]+)/) { print "$1\n"; print "$2\n\n\n"; } } close(SSH);
sshで接続してるので、sshをパスワードなしで接続ここの様にしておく。
ちなみに上記はPerlで作成してありますが、何でもOKです。
いっそのことシェルで作っちゃってもOKよ。(その場合、MTRG.CFGの中に直接記述できます。)
上記Perlで数字が2行と改行2行の計4行出力されてればOK。
MTRG.CFGはこんな感じで書きます
Target[diskio192.168.1.59]: `/etc/mrtg/diskio-1.59.pl` MaxBytes[diskio192.168.1.59]: 200 Title[diskio192.168.1.59]: Disk I/O PageTop[diskio192.168.1.59]: Disk I/O on 1.59
YLegend[diskio192.168.1.59]: Disk I/O ShortLegend[diskio192.168.1.59]: blocks/s LegendI[diskio192.168.1.59]:read LegendO[diskio192.168.1.59]:write
/proc/diskstats に関する情報
Field 1 -- # of reads issued
Field 2 -- # of reads merged
Field 3 -- # of sectors read
Field 4 -- # of milliseconds spent reading
Field 5 -- # of writes completed
Field 6 -- # of writes merged
Field 7 -- # of sectors written
Field 8 -- # of milliseconds spent writing
Field 9 -- # of I/Os currently in progress
Field 10 -- # of milliseconds spent doing I/Os
Field 11 -- weighted # of milliseconds spent doing I/Os
swap領域を簡単に増やすには
テスト環境なんかで適当に作った後、SWAPが足りなくてOutOfMemoryの連発なんてときは
dd if=/dev/zero of=swapfile bs=1024 count=1000000 (1Gです) mkswap -v1 swapfile swapon swapfile
これでOK
あくまでも一時的な処置です・・
2008年10月03日
Postgres create table
CREATE TABLE test2 as select * from test order by main_id desc , main2_id desc;
Pgpool-2
wget http://pgfoundry.org/frs/download.php/1843/pgpool-II-2.1.tar.gz
./configure
make
make install
cp /usr/local/etc/pgpool.conf.sample /usr/local/etc/pgpool.conf
cp /usr/local/etc/pcp.conf.sample /usr/local/etc/pcp.conf
vi /usr/local/etc/pcp.conf
USERNAME:MD5PASS
pgpool-II-2.1.tar.gzを展開したディレクトリの中の/sqlフォルダ内に
/usr/src/pgpool-II-2.1/sql/system_db.sql
があるので、system_dbを作成しておく
こんな感じ
createdb -U postgres -h localhost pgpool
psql -U postgres -h localhost pgpool < system_db.sql
PgpoolAdmin
wget http://pgfoundry.org/frs/download.php/1716/pgpoolAdmin-2.1-beta1.tar.gz
展開されたディレクトリをWEBアクセス可能な場所に移動
http://サーバー/PgpoolAdmin/install/checkDirectory.php
EXT3 チューニング
LABEL=/hoge /hoge ext3 rw,noatime,data=writeback 1 2
tune2fs -o journal_data_writeback /dev/md2
data=journal
ファイルデータとメタデータの両方を記録することでデータの整合性は一番高いモードですが、オーバーヘッドが非常に大きくなります。
data=ordered(標準)
このモードではメタデータのみが記録されます。ファイルデータを先に書き込むことでデータの内容は保証されます。
data=writeback
データの整合性よりデータへのもっともはやいアクセスを提供するオプションです。ステムクラッシュ時には古いデータのままである可能性があります。整合性を取らなくてもいいような一次的なファイルを保存するだけのファイルシステムであればwritebackモードを使用することも有効な手段と考えられます。
Postgres テーブルスペース
テーブルスペースの一覧
\db+
List of tablespaces
Name | Owner | Location | Access privileges
------------+----------+----------+-------------------
pg_default | postgres | |
pg_global | postgres | |
(2 rows)
テーブルスペースとは、その名の通りテーブルの場所です。
たとえば
CREATE TABLESPACE disk2 LOCATION '/disk2/pgdata';
のようなコマンドをたたくと
\db+
List of tablespaces
Name | Owner | Location | Access privileges
------------+----------+----------+-------------------
disk2 | postgres | |
pg_default | postgres | |
pg_global | postgres | |
(3 rows)
すでにあるテーブルを移動させたい時は
ALTER TABLE srctabl1 SET TABLESPACE disk1;
この基本的な使い方は、高負荷時のDiskI/Oの分散です。
負荷分散なので、同一Diskの別フォルダに作成しても意味ないので気をつけましょう。
SSH を パスワード なし で 接続したい
接続元マシンでの作業
ssh-keygen -t rsa を実行すると、自分の秘密鍵・公開鍵が/root/.ssh/に生成させる
いくつか質問がきますが(パスフレーズやファイルの生成場所)何も入力しない。
id_rsa(秘密鍵)
id_rsa.pub(公開鍵)
cat /root/.ssh/id_rsa.pub
接続先マシンでの作業
vi /root/.ssh/authorized_keys
この中に上記で作成された公開鍵の中身を記述しておく
cat ./.ssh/id_rsa.pub | ssh root@des_host名 "cat >> ./.ssh/authorized_keys"
こんな感じのコマンドならば、すべて接続元のマシンで完了するよ。
2008年10月02日
windows 2000 server 自動ログイン
rundll32.exe %SystemRoot%\system32\netplwiz.dll,UsersRunDll
2008年09月30日
Redhat9 に yum を インストール
■すでにインストールされていれば良いのだが、確認しなければ先にインストールしておく
wget http://ftp.kddilabs.jp/Linux/packages/fedora.legacy/redhat/9/os/i386/libxml2-python-2.5.4-1.i386.rpm
rpm -ivh libxml2-python-2.5.4-1.i386.rpm
■yumのインストール
wget http://ftp.kddilabs.jp/Linux/packages/fedora.legacy/redhat/9/updates/i386/gnupg-1.2.1-9.i386.rpm
wget http://ftp.kddilabs.jp/Linux/packages/fedora.legacy/redhat/9/legacy-utils/i386/yum-2.0.5-0.9.2.legacy.noarch.rpm
rpm -ivh gnupg-1.2.1-9.i386.rpm
rpm -ivh yum-2.0.5-0.9.2.legacy.noarch.rpm
■rpmforgeのinstall
wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.rh9.rf.i386.rpm
rpm -ivh rpmforge-release-0.3.6-1.rh9.rf.i386.rpm
■GPG-KEYのimport
wget http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
rpm --import RPM-GPG-KEY.dag.txt
vi /etc/yum.confで以下の行を追加。既存のブロックは削除
[rpmforge]
name = Red Hat $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/9/en/$basearch/dag
mirrorlist = http://apt.sw.be/redhat/9/en/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
2008年09月21日
サーチエンジンチェック
2008年09月20日
DRBDの復旧
2台目でconnectすると必ずStandAloneになってしまう場合、何かの障害が発生してるため、データの保護目的で接続できない場合がある。(異常終了などで・・)
そんな時は、「connect」する前にこんな感じ「drbdadm invalidate r0」のコマンドを叩いてみよう。
(セカンダリ側で実行しましょう。ファイルシステムがGFSでprimary/primaryの場合はどちらでもOKかな?気をつけることは、両方でやらないこと!!)
/etc/init.d/drbd status とか cat /proc/drbd とかでステータスを確認すると、同期が始まってるはずです。
syncer {
rate 10M;
}
転送レートを設定しても、毎回 drbdadm adjust r0 を叩かないとデフォルトの速度でうごくので、忘れない様にしないとね。
でも、そんなにハードな使い方をしたわけでもないのに落ちちゃった・・・
もうしばらくテストしてみますが、5Gほどのデータを書き込んでこれなので、4Tのデータだときつい感じがします。
primary/primaryでガシガシ使い込むんじゃなくて、バックアップ目的でしか使えないかも・・
2008年09月14日
チェス.将棋 VS コンピュータ
ほんとにコンピュータとゲームをしてる筈もなく、あれはプログラムの設計者と対戦していると思うんですが何か?
翻訳ソフトは、創り作り側のボキャブラリ次第だとおもうんですが何か?
HAL9000や、ナイトライダーのキット、最近だとマトリックスに登場する様なコンピュータがあれば別ですが、まだまだ先のようです。
自動車や船舶の製造、アパレル、観光、どんな業界でも、人が人の為に何かを創造・提供し、またその製造、販売に至るまでのプロセスも本質の部分ではみな共通なはずなんですが、とりえず簡単に参入出来てしまうこの業界は
まー、楽しくやりましょう。
Windows7
2010年初頭に登場することが予定されているマイクロソフトの最新OS「Windows 7」ですが、今年中にベータ版の提供が開始されるかもしれないそうです。
2008年09月12日
mount remount tune2fs
sync;・・・・・・・
init 1 <= シングルユーザモード
mount -o ro,remount / <=リマウント
tune2fs -c 0 /dev/hda1
2008年09月11日
mdadm で RAID
RAIDの作成
あらかじめfdiskでパーティーションタイプをfdにしておくこと
mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sdb1 /dev/sdc1
または
mdadm -C /dev/md0 -l1 -n2 /dev/sdb1 /dev/sdc1
RAIDの状態確認
cat /proc/mdstat
mdadm -D /dev/md0
RAIDの解除
mdadm -S /dev/md0
2008年09月10日
CDをisoファイルに落とすには CD-ROMイメージを作るには
dd if=/dev/cdrom of=windows2000.iso
作成したisoはこんな感じでマウントすれば使えます。
2008年09月09日
CentOS Xen でブリッジインターフェイスを増やす
cd /etc/xen/scripts
一応コピーしておく
cp ./network-bridge backup.network-bridge
cp ./network-bridge network-bridge.src
vi network-bridge
#!/bin/sh
set -e
OP=$1
shift
script=/etc/xen/scripts/network-bridge.src
case ${OP} in
start)
$script start vifnum=0 bridge=xenbr0 netdev=eth0
$script start vifnum=1 bridge=xenbr1 netdev=eth1
$script start vifnum=2 bridge=xenbri netdev=dummy0
;;
stop)
$script stop vifnum=0 bridge=xenbr0 netdev=eth0
$script stop vifnum=1 bridge=xenbr1 netdev=eth1
$script stop vifnum=2 bridge=xenbri netdev=dummy0
;;
status)
$script status vifnum=0 bridge=xenbr0 netdev=eth0
$script status vifnum=1 bridge=xenbr1 netdev=eth1
$script status vifnum=2 bridge=xenbri netdev=dummy0
;;
*)
echo "Unknown command: $command" >&2
echo 'Valid commands are: start, stop, status' >&2
exit 1
esac
作ったシェルスクリプトに実行の権限ないといけないので、
chmod 755 network-bridge
ちゃんと動くか確認
./network-bridge status
インターフェイスの停止
./network-bridge stop
インターフェイスの開始
./network-bridge start
確認
./network-bridge status
ifconfig
xenbr1 が増えてるはずです。
その後、GUIからネットワークデバイスを追加すればよいはず。
xenbr1が増えてます。
後はイーサの設定をすれば良いだけ・・・あれっ・・・つながらない。
うーん、/etc/init.d/xend restart してみるもだめ。
マシンごと再起動。
でもだめ・・・・
設定ファイル’/etc/xen/cent1’を確認してみても、おかしそうなところは無い。
仕方ないので、GUIからDomainUのNICをすべて消し、改めて追加。
DomainUを立ち上げ、/etc/sysconfig/network-scripts/ifcfg-eth0 に書かれている HWADDR=00:1D:09:1A:87:2F の行を、追加したNICのMACアドレスと見比べながら変更し、再度ネットワークの再起動を行う。
つながった。
2008年09月08日
Linux で CPU の情報を確認
cat /proc/cpuinfo
上記のコマンドで、以下のような情報が取れます。
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 31
model name : AMD Athlon(tm) 64 Processor 3000+
stepping : 0
cpu MHz : 1808.806
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush mmx fxsr sse sse2 nx mmxext fxsr_opt lm 3dnowext 3dnow up ts fid vid ttp
bogomips : 4523.53
isoイメージのマウント
mount -t iso9660 -o loop shrike-i386-disc1.iso /cdimage/disk1
yumでエラー
画面を眺めてると、........libxml2.........と、メッセージの中に’libxml2’が出てきた場合・・
yumでインストールした以外のlibxml2がありませんか?
環境変数の設定を変えて、’/usr/lib/libxml2’より先に別バージョンの’libxml2’が呼び出されてる場合、パッケージの種類によっては完了しません。
(その場所は、OSやバージョンによってちがうでしょう。)
そんな時にpsやtopで見てみると、’scrollkeeper’が動きっぱなしになってるはずです。
パッケージ管理の一部を’xml’で書かれたテキストファイルで行っているようです。
libxml2はバージョンでかなり大幅に変更があるようです。PHPから使用するときも大変です。
(私はCentOS5.1で、libxml等ソースからコンパイルした物がたくさん入っていて、GTK-DOCのyum update のときにエラーでおかしくなりました。)
fdformat mke2fs
mke2fs /dev/fd0
fdformat /dev/fd0
mount -t ext2 /dev/fd0 /mnt
2008年09月07日
MySoftbakへの登録
MySoftbankへの登録をしてみたが、なかなか登録できずに、かなりイラっとしました。
新規登録という言葉のとらえかたが問題でした。
新規登録ということなので、安全なパスワードを考えて登録してましたが、このパスワードは、申し込み時に登録したパスワードを入力しなければダメです。
ここで登録した後に、メールで本当のMySoftbankのパスワードが送られてきます。
新規契約時に決めたあのパスワードを入力です。
4日間悩み続けました。
IPhoneは日本でははやらないでしょうね。多分海外でも。
携帯電話と比較した場合ですよ。今までのPDA端末とかと比べると、なかなかの優れものです。(金額が金額なので、当然ですが。)
この種の端末は今までに無かったので、どの層に受け入れられるのかしばらくは注意ぶかく気にしていきます。
私は結構なパソコンユーザーですが、かなりしっくりきてます。
ザウルスみたく、何でもOKではありませんが、小さい・早い・電話できる・無線もつかえる・ヤングの仲間入りができる・・・これだけあれば満足です。

