2006 年 1 月 のアーカイブ

[Linux] ディスク容量を表示 df,du,quotaコマンド

2006 年 1 月 21 日 土曜日

ディスクの容量を表示するコマンドの使い方。

df コマンド

ディスク(パーティション)ごとに使用率を表示する。
「-h」はhuman readable。単位をつけてくれる。

$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/simfs 10485760 1918208 8567552 19% /
none 393216 4 393212 1% /dev

$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/simfs 10G 1.9G 8.2G 19% /
none 384M 4.0K 384M 1% /dev

du コマンド

カレントディレクトリから再帰的にディレクトリの容量を表示する。

「-h」はhuman readable。単位をつけてくれる。

$ du -h
4.0K ./local/src
4.0K ./local/sbin
4.0K ./local/libexec
4.0K ./local/etc
192K ./local/share/ajaxterm
4.0K ./local/share/man/man7

「–max-depth」で階層の深さを指定できる。現在のディレクトリあるディレクトリおよびファイルの容量が知りたい場合。

$ du -h –max-depth 1
324K /usr/local
92K /usr/src
104M /usr/sbin
23M /usr/libexec
80K /usr/kerberos
4.0K /usr/etc

quota コマンド

自分のディスクの制限容量(quota)を表示する。制限がない場合の出力例。

$ quota
#Disk quotas for user hogehoge (uid 11650): none

参考文献

Linux教科書 LPICレベル1 第4版 (CD-ROM付)
Linux教科書 LPICレベル1
¥ 3,990
プロのための Linuxシステム構築・運用技術 (Software Design plus)
プロのための Linuxシステム構築・運用技術
¥ 3,024
【改訂新版】 Linuxコマンド ポケットリファレンス (Pocket Reference)
Linuxコマンド ポケットリファレンス
¥ 2,394

[iアプリ] タイマーを使うときの注意点

2006 年 1 月 7 日 土曜日

タイマー利用時の注意

iアプリのタイマーは電源ボタンを押して、止められてしまう。

電源ボタン押下→アプリ終了キャンセルで、
”Display.RESUME_VM_EVENT”
イベントが発生するので、これをトラップして、タイマーをリスタートさせればOK。

RPMと同じディレクトリにソフトをインストールする

2006 年 1 月 7 日 土曜日

RPMを消して、自前でコンパイルして入れたい、けど、ディレクトリ構成はディストリビューションと同じにしたい。
そんな几帳面な方に送る情報。

手順

「config.layout」というファイルがある場合には、「–with-layout」オプションでディストリビューションに応じたファイル配置でインストールが出来る。

$ ./configure –with-layout=RedHat

例えば、apacheなら、通常は
/usr/local/apache/bin/httpd
になるが、–with-layout=Redhatで~
/usr/sbin/http
にインストールされる。

config.layoutがなかったら?

RPMからconfigureオプションを調べて、同じオプションでビルドすれば良い。
RPMがどのようなconfigureオプションで作られたか調べる を参照。

参考文献

図解でわかる Linuxサーバ構築・設定のすべて 【改訂新版】 Linuxコマンド ポケットリファレンス (Pocket Reference) Red Hat RPM Guide (redhat PRESS)

RPMがどのようなconfigureオプションで作られたか調べる

2006 年 1 月 2 日 月曜日

RPMからconfigureオプションを調べる方法。

適当にディレクトリを作って、その中でRPMを解凍する(cpioを使う)。

 $ mkdir work
 $ cd work
 $ rpm2cpio ../smartmontools-5.23-1.i386.rpm | cpio -id
 872 blocks
 $ ls -l
 合計 8
 drwx------    3 nori     nori         4096 11月  4 06:19 etc
 drwx------    4 nori     nori         4096 11月  4 06:19 usr
 $ tree
 .
 |-- etc
 |   |-- rc.d
 |   |   `-- init.d
 |   |       `-- smartd
 |   `-- smartd.conf
 `-- usr
     |-- sbin
     |   |-- smartctl

SPECファイルを探す。
※find の -iname オプションは大文字/小文字を関係なく検索の意。

$ find . -iname *.spec

SPECファイルをエディタで開いてconfigureオプションを見る。

参考文献

Red Hat RPM Guide (redhat PRESS) 例題で学ぶLinuxプログラミング―GCCからRPMまでオープンソース・アプリケーション技術 GNU Make 第3版

[Perl] Config::Autoによる設定ファイルの読み込み

2006 年 1 月 1 日 日曜日

オリジナルの設定ファイルを作ることはよくある。
Perlのコードをそのままrequireしてしまうのが一番簡単。

 $config{"db_name"} = "mydb";
 $config{"db_pass"} = "mydbpass";

でも、Perlプログラマ以外の人にとって扱いづらい。
→ Config::Autoモジュールで解決!

Config::Autoの特徴

  • さまざまな書式の設定ファイルを読み込むことができる。
  • スペース区切り
  • コロン区切り
  • イコール区切り
  • YAML
  • XML

結果はハッシュに格納される。

Config-Autoの入手

CPANからダウンロード可能。

http://search.cpan.org/~simon/Config-Auto-0.03/Auto.pm

Debianでは、aptでインストールできる。

$ sudo apt-get install libconfig-auto-perl

Config-Auto サンプルコード

/etc/resolv.confを読み込むコード。設定ファイルの書式は自動判別してくれる。

 use strict;
 use Config::Auto;
 use Data::Dumper;

 my $config = Config::Auto::parse("/etc/resolv.conf");
 print Dumper($config);
$ cat /etc/resolv.conf
nameserver 192.168.3.1
nameserver 192.168.3.2
search mydomain.localdomain

$ perl readconf.pl
$VAR1 = {
          'search' => 'mydomain.localdomain',
          'nameserver' => [
                            '192.168.3.1',
                            '192.168.3.2'
                          ]
        };

参考文献

初めてのPerl 第5版 続・初めてのPerl 改訂版 入門Perl・Tk―Perlで簡単GUIプログラミング

[Perl] インストール済みモジュールの一覧表示

2006 年 1 月 1 日 日曜日

モジュールの一覧表示

@INCからfindコマンドで探す。

$ find `perl -e ‘print “@INC”‘` -name ‘*.pm’ -print
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/Bundle/DBD/mysql.pm
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/Bundle/DBI.pm
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/DBD/ExampleP.pm
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/DBD/File.pm

モジュール一覧を出力するCGI

レンタルサーバとかで、使いたいモジュールがインストールされているから調べるのに使う。

 #!/usr/local/bin/perl

 print "Content-type: text/plain\n\n";
 print qx(find `/usr/local/bin/perl -e 'print "@INC"'` -name '*.pm' -print);

 1;

参考文献

PerlフレームワークCatalyst完全入門 続・初めてのPerl 改訂版 たのしいRuby 第2版 Rubyではじめる気軽なプログラミング