CentOSでNICのMACアドレスが70-persistent-net.ruleに自動登録されるのを抑制する

CentOSでは、NICのMACアドレスをあるinterface(eth0など)に固定するための設定が自動的に以下のファイルに追加されます。
/etc/udev/rules.d/70-persistent-net.rule
この機能は、便利ではありますが、不都合な場合もあります。例えば、Diskイメージをコピーして、他の環境で使う場合に、1枚目のNICがeth1になるなどです。 上記の振る舞いを抑制するには、下記のファイルを編集します。
/lib/udev/rules.d/75-persistent-net-generator.rules
以下の行を削除または、コメントアウトします。
 DRIVERS=="?*", IMPORT{program}="write_net_rules"
なお、上記は、自動的に追加することを抑止しますが、すでに70-persistent-net.ruleなどに設定がある場合、それは依然として有効のままです。無効にする場合は、70-persistent-net.rulの中の該当する行を削除します。また、/etc/sysconfig/network-scripts/ifcfg-eth0の中にもMACアドレスの記載がある場合、それも削除します。

Systemがクラッシュした後のmysqldの開始失敗を修復する。

Systemがクラッシュして、正常にシャットダウンしなかった場合、 次のように、それ以降のmysqldが立ち上がらなくなることがあります。
# /etc/init.d/mysqld start
Another MySQL daemon already running with the same unix socket.
mysqld を起動中:                                           [失敗]
このような症状の原因候補のひとつとして、mysql.sockが、残ったままになっていることが挙げられます。
# ls -l /var/lib/mysql/mysql.sock 
srwxrwxrwx 1 mysql mysql 0  2月 21 10:34 2014 /var/lib/mysql/mysql.sock
上記のようにファイルが残っている場合、次のように削除することで、正常に起動できるようになります。
# rm -f /var/lib/mysql/mysql.sock 

MacOS Xでrouting tableを確認および設定する

Routing tableの確認。
$ netstat -rn
192.168.0.10へのGatawayを192.168.158.20にする例。
# route add -net 192.168.0.10 192.168.158.20
192.168.1.0/24へのGatawayを192.168.158.10にする例。
# route add -net 192.168.1.0/24 192.168.158.10

sshで多段接続する設定

$HOME/.ssh/confingに以下のような設定をする。 この例では、直接アクセスできるマシンがbig-bangで、それを経由してログインするマシンがatom。
Host big-bang
  Hostname 10.1.1.1
  User bean
  
Host atom
  HostName 192.168.100.5
  User mine
  ProxyCommand ssh big-bang nc %h %p

MacOSのPythonでrequestsパッケージを利用する

以下のようにpipでインストールできます。
$ sudo pip install requests
pipのインストールについては、 こちら の記事を参照ください。

MacOSにpipをインストールする

1. インストーラをダウンロードする。
$ curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py > get-pip.py
2. 実行する
$ sudo python get-pip.py

Ubuntuでカーネルモジュールの自動ロードを抑止する

/etc/modprobe.d/blacklist.confに 以下のようにモジュール名を追記すればよい。
blacklist rtl8192cu
blacklist btusb
その後、システムを再起動する。rmmodなどで、そのカーネルモジュールをアンロードしてもよいが、不安定などの理由でロードを抑止する場合、一度でもカーネルにロードされたなら、安全のため再起動するのがよい。

この機能を利用すると、次のようなこともできる。実験的に使いたいデバイスについては、安定性が必要なホストOSでは、上記のような設定にして自動でドライバがロードされることを回避し、ゲストOSで、設定等を試したり、試運転する。ゲストOSならカーネルがクラッシュしても影響が限定的になる。

Wiresharkで解析できるキャプチャファイルを、tcpdumpで作成する

例: 青字不部分は適宜変更
# tcpdump -n -s 0 -i eth0 -w dump.dat
-nは、IPアドレスのまま出力する(DNSを引かない)オプション。
-s 0は、キャプチャするパケットサイズの上限を無制限にする。
-iで、キャプチャ対象のネットワークデバイスを指定。
-wで、作成するキャプチャファイル名を指定。

OpenStackのnovaコマンドでインスタンスを起動する

例: 青字の部分は適宜変更します。
$ nova boot --flavor 1 --key_name mykey --image  a7822d3f-5ba2-4248-9a3e-a946257b637c --security_group default --nic net-id=662fd507-eb19-4b98-a912-519e92846957 instance_name
flavaor一覧の調べ方
$ nova flavor-list
key一覧の調べ方
$ nova keypair-list
image一覧の調べ方
$ nova image-list
security group一覧の調べ方
$ nova secgroup-list 
network一覧の調べ方
$ nova net-list
プロジェクト名(テナント名)の変更と、ホストの指定も含む例。
$ nova --os-tenant-id e318a792ec044e1a838b14ead24828b9 boot --flavor d6bb73d1-6b4f-42ea-858d-cd1b0d48dd15  --key_name mykey --image 5060bbcb-a361-4e5a-ac26-9864143050e5  --security_group default --nic net-id=6505d940-df5c-4b2e-8da0-dbeda4343cd0 --availability-zone nova:host instance_name

mallocやfreeでGLIBCが異常を検出した際、abortさせる

GLIBCが、malloc()やfree()でメモリ破壊や二重開放などを検出した場合、stack traceやmemory mapが表示され、プログラムが終了します。このような現象の原因を調査するために、コアをダンプさせ、GDBで解析したい時があります。そのような場合、以下の環境変数を設定すると、異常検出時、abort()がコールされます。ulimit -c unlimitedなどでコアを出力する設定にしておくと、SIGABRTを受けて、コアダンプが生成されます。
MALLOC_CHECK_=2
ちなみに設定する値によって、次の振る舞いになります。
0: 何も起こさない
1: メッセージを表示
2: abortする
3: 上記1と2の両方を行う