muninを引っ越した

ブログを余りにも放置してたので、コンスタントに小ネタを書いていくことにした。

最近muninを動かしているサーバをリプレースしたんですが、OSが32bitから64bitに変わったんですよ。んでrrdってアーキテクチャ変わるとそのままcopyしても使えないんですよね。コンバートしないとだめ。

やり方としては、こんな感じ。一旦旧ホストでdumpしたのを新ホストに持って行ってrestore。

http://slog.carlheaton.co.uk/index.php/2009/10/converting-32bit-rrd-to-64bit-rrd-moving-cacti-between-architectures/

が、しかし今回の環境は旧ホストのdiskがかなり弱っていたというのと、容量的にも余裕が無かったので、ローカルには吐き出したくない。あとそれなりに時間がかかるので、ゴニョゴニョやってる間に値を取得出来ない時間が発生してしまうのもよろしくない。

そんなわけで、試しにrestoreに方に直接標準入力で食わせてみたらいけました。

こんな感じ。

for RRD in $(find /var/lib/munin/ -name '*.rrd')
do
    rrdtool dump $RRD | 
     ssh newhost "rrdtool restore -f - $RRD && chown munin. $RRD"
done

らくちんです。