2013-06-06

EXT4/LVM をオンラインでサイズ変更

EXT4 になって, オンライン (マウントしたまま) のリサイズが出来るようになったようだ. EXT3 でもできたらしいが, dangerous と言われていた. 以下に, 例を示す. この例では, Scientific Linux 6 (CentOS6 同様, RHEL6 のクローン) を使用しており, もともと 16GB しか /var に確保していなかったが, 32GB に拡張した. LVM の ボリュームグループにはまだ空きがあったので, lvextend で論理ボリュームを拡張し, resize2fs にて EXT4 のサイズを変更した.
$ sudo lvextend -L32G /dev/mapper/VolGroup00-var 
  Extending logical volume var to 32.00 GiB
  Logical volume var successfully resized

$ sudo resize2fs -p /dev/mapper/VolGroup00-var
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/VolGroup00-var is mounted on /var; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/mapper/VolGroup00-var to 8388608 (4k) blocks.
The filesystem on /dev/mapper/VolGroup00-var is now 8388608 blocks long.
resize2fs は, 特にオプションを指定しなくても, オンラインであることを感知して, オンラインリサイズを実行するようだ. -p は, 進捗をバーで表示するオプション. なお, resize2fs が動いている間に df を実行すると, その拡張途中のサイズが表示された.

ext4 ファイルシステムのサイズを変更する

PingコマンドによるIPアドレス重複の調査

同一のIPアドレスが複数のマシンに重複して割り当てられてしまうという事故が起こった場合の対処方法を説明する.

以下では, 192.168.0.100 が重複して割り当てられている場合を例にして, RHEL 6 にて調査する方法を説明する.

  1. まず, MACアドレスを特定する.
    $ ping -c 1 192.168.0.100
    $ arp 192.168.0.100
    
    この時に出力されるMACアドレス (HWaddress) が時とともに (数分〜) 別のものに変わる. このMACアドレス (偽物の方) をメモする.
    たいていの機器ではこのMACアドレスがラベルに書かれているが, 機器がたくさんある場合や, 探しまわっても見つからないこともある. その時は, 以下の手順に進む.
  2. 偽物のMACアドレスを, arp テーブルに設定する. (ここでは, 01:23:45:67:89:ab とする.)
    # arp -s 192.168.0.100 01:23:45:67:89:ab
    この代わりに, 本物のMACアドレスをもったマシンをネットワークから切り離しても良い.
  3. ping を送る. 応答が来たら音が鳴るように, tr へパイプする.
    $ ping 192.168.0.100 | tr : '\a'
    この時点でもし音がならない場合は,
    # modprobe pcspkr
    を実行してから, もう一度試す.
  4. ハブにおいて, 音と同期して点滅するポートを探す. もしデータ転送量が多いなどで見つけにくい場合は, ハブにつながっているLANケーブルを1本ずつ抜き差しし, 音が鳴らなくなるものを探す.

2013-06-04

私のlatexmkrc

latexmk というプログラムを使うと, コマンドひとつで LaTeX のソースファイルのコンパイル, PDF の作成などを行うことができる. 実行してみると *.fdb_latexmk というファイルが生成されていて MD5 が書かれていたので, 中間ファイルや依存ファイルの MD5 が変わったかどうかを見てコンパイルするかどうか, もう一度コンパイルし直すかどうかを判断する.

作業ディレクトリにlatexmkrcというファイルを用意しておくと, 使用するコマンドをカスタマイズできる. 以下に私が使用しているlatexmkrcの例を示す.

#!/usr/bin/env perl

$latex  = 'platex -halt-on-error %O %S';
$bibtex  = 'pbibtex %O %B';
$dvipdf  = 'dvipdfmx %O %S';
$pdf_mode = 3;

$ENV{"LANG"} = "ja_JP.UTF-8";
  • 日本語を書くので, platex, pbibtex, dvipdfmxを使用する. これを上記の様に設定する.
  • pdf_modeを3に設定することで, DVIPDFによりPDFを生成する.
  • 念の為, 環境変数LANGをja_JP.UTF-8に設定しておく.
  • その他の設定は, latexmkの中身 (perlで書かれている) を読んで調べれば良い. なお, latex ではなく platex を使用したい場合は,
    latexmk -latex=platex
    
    とすれば良いようだ.

    また, 英語で論文などを書くときには, 以下のlatexmkrcを使っている.

    #!/usr/bin/env perl
    
    $latex  = 'latex -halt-on-error %O %S';
    $bibtex  = 'bibtex %O %B';
    $dvipdf  = 'dvipdfmx %O %S';
    $pdf_mode = 3;
    
  • 2013-05-27

    httpd のアクセスログ: UpdateDD

    httpd のログに, 以下のような行が出ていた. (一部, 適当な長さの X で置き換えている.)
    XXX.XXX.XXX.XXX - - [XX/May/2013:XX:XX:XX +0900] "GET /update.php?username=XXX&pass=XXX&host=XXX.no-ip.info HTTP/1.1" 404 303 "-" "UpdateDD 2.6 - http://updatedd.philipp-benner.de"
    
    ユーザ名・パスワードが平文で書かれている. host=XXX.no-ip.info の部分から, no-ip の DDNS を使っているようだ. IPアドレスの更新プログラムが, IPを間違えたのだろう.

    2013-05-10

    pdftk にてパスワードを解除

    PDFTKというコマンドラインツールを使うと, パスワード保護のかかったPDFファイルを読むことができる. (もちろん, パスワードを知っている必要がある.) これを使うと, パスワード保護のかかったPDFをパスワード保護なしのPDFに変換することができる. 以下のようば場合に便利である.
    • 大して重要でもないのにパスワードがかかっている.
    • 毎回パスワードをメモしておくよりは, 暗号化しない方がましだ.
    • ディスクごと暗号化しているなど, 別の方法で保護しているからOKだろう.
    pdftk input_file.pdf input_pw your_passowrd output output_file.pdf
    
    また, 別のパスワードで保護することもできる.
    pdftk input_file.pdf input_pw your_passowrd output output_file.pdf owner_pw foo user_pw baz
    

    2013-05-02

    Chrome で新しいタブを開いてURLを開く

    Linux 上の Firefox では, URL をバッファに入れた状態で中ボタンクリックにより, その URL を開くことができた. Chrome でも同様の機能があればいいなと思っていたら, 似た機能があった.
  • マウスで URL を選択して, バッファに入れる. (端末など, 別のアプリケーション上で)
  • Chrome の「新しいタブ」ボタンを中クリックする.
  • この手順で, 新しいタブを開いて URL を開くことができる.

    LaTeX パッケージのドキュメント

    LaTeX のパッケージに含まれるコマンドの使用方法を調べる場合, CTAN のウェブページを利用するのが良い. コマンド名で検索しても, 不完全な情報しか得られないが, オフィシャルなドキュメントには, サポートされている全てのオプションが記載されている (べきである).