2012-10-20

ディスク入出力中のプロセスを表示

Linux 上で何らかのプロセスがディスク入出力を行なっているとき, そのプロセスを突き止める方法が書かれているページを見つけた.
watch -n 1 "(ps aux | awk '\$8 ~ /D/  { print \$0 }')"
この方法によってディスク入出力を頻繁に行なっている PID を突き止めることができる. どのファイルにアクセスしているかは,
ls -l /proc/PID/fd/
(PIDの部分はそのプロセスのPIDに置き換える) で確認できる.

FFmpeg

FFmpeg は, フリーの映像・音声処理ツールである. Linux 上でも使用することができるが, ビルド方法がやや特殊であるため, ここに書いておく.
  1. ソースを取得する.
    $ git clone git://source.ffmpeg.org/ffmpeg
    $ cd ffmpeg
  2. ビルドする. configure の際に, nonfree を有効にすると, フリーでない (再頒布できない) バイナリが生成される. 個人で使用する分には, nonfree が良いだろう. その他, 色々とオプションをつけておく.
    $ ./configure --enable-nonfree --enable-gpl --enable-version3 --enable-libmp3lame
    $ make
  3. インストールする. プログラムとマニュアルだけをインストールする場合は, install ではなく, install-progs ルールを使用する.
    $ sudo make install-progs

RHELでは, 以下のパッケージを予めインストールしておく.

  • lame-devel, lame-libs, rpmfusion.
  • yasm, epel.
  • ...

2012-10-09

NFS4にて所有者がnobodyになる

NFS4とLDAPとを使用していると, 稀にIDMAP (UID/GIDとユーザ名/グループ名との変換) で失敗することがある. 以下のようなログが出力される.
nslcd[1455]: [3c9869] no available LDAP server found
nfsidmap[1637]: nss_getpwnam: name 'hoge' not found in domain 'example.com'
nslcd[1455]: [334873] no available LDAP server found
このような時, 以下のコマンドでキャッシュをクリアすればよい.
sudo nfsidmap -v -u nobody