今は技術者モードで

ここ2週間くらいは「技術者モード」で生活している。

技術者モードっていうのはなにかというと、私の中で技術を生活のメインテーマとしているということ。

技術といってもぼんやりしてるのだけど、それはプログラミングだったり、サーバ運用だったりするわけです。

プログラミングをもう少し見るとRubyだったりJavaScriptだったりObjective-Cだったりするのです。
“今は技術者モードで” の続きを読む

Perlのパスをコマンドで一括置換 (CGI)

データを別サーバに移行してたらPerlで書かれたCGIが入っていて、動作確認したら動かなかった。

あれと思って調べてみたら、Perlのパスが”/usr/local/bin/perl”になってたのが原因だった。

いつも使ってるサーバでのパスは”/usr/bin/perl”だ。

どうも以前はシンボリックリンクで対応したようだけど、今回はファイルの方を書き換えることにした。

ln -s /usr/bin/perl /usr/local/bin/perl

それで、スクリプトのパスの方を書き換えようとしたら、複数ファイルに書かれていた・・・

ということで、コマンドの組み合わせを考えてみる。

カレントディレクトリ以下の”/usr/local/bin/perl”が含まれるファイルはgrepで探せる。

grep -rl '/usr/local/bin/perl' *

パスの置換はsedでできるのでxargsにパイプして一括置換できましたよと。

grep -rl '/usr/local/bin/perl' * | xargs sed  -i 's/\/usr\/local\/bin\/perl/\/usr\/bin\/perl/'

実行するとファイルが書き換えられるので、ちゃんとバックアップとってお試し下さい。

.ssh/config でホスト名のワイルドカードを使用する

AWSのEC2を検証用に使うようになってきた。
Elastic IPで固定IPを振るほどでもないので、インスタンスを立ち上げるたびにIPつまりpublic DNSがころころ変わる。

設定をするのにSSHでログインするんだけど、SSHのデフォルトのポートを22にしてないのでコマンド打つときに毎回-p 22と打ったり、ユーザ名にec2-userと打つのがめんどくさくなってきた。

ssh -p 22 ec2-user@ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com

.ssh/configでワイルドカードが使えればな〜と思って調べたら、使えることがわかった。

.ssh/configの最初の方に次のような記述を追加しておいた。

Host *.compute.amazonaws.com
    User ec2-user
    Port 22

これでssh + public DSNを打つだけで新しいインスタンスにログインできるようになった。

ssh ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com

.ssh/configをよく見たら最後の方に

Host 172.16.*
    Port 22

とか書いてあった。

どうやらワイルドカード使えることを忘れていただけらしい・・・

SSH_CONFIG (5)

気もそぞろ

ここのところ貧乏ゆすりが気になる。

新幹線の同じ列の向かいの席の人やカフェで隣に座った人が貧乏ゆすりをしていることがあった。

あと、後ろの若い学生風の人が勉強しながらペンをかなりの音を出してカチカチやってることがあった。

昔ほどそれを見てもあまりイライラはしないんだけど、気になりはする。

たぶん自分では無意識にやっていて気づいてないんだろうなと。
そして、やってる本人は当然気にならないんだろう。

貧乏ゆすりですごく自分がイライラしたという話ではなく、あれってなんでやってるんだろうと気になったのだ。

しばらく考えたんだけど、貧乏ゆすりをしてるときって「気もそぞろ」なんじゃないかと考えた。

自分は貧乏ゆすりはしない(と思う)けど、気もそぞろだと何でも無いのに物を落としたり、ぶつけたり動作が乱暴になることがある。

そんなとき、過去や未来のことを気にしたりしてるんだろうな。

貧乏ゆすりじゃなくても何かしら無意識の動作をして自分も周りのひとをイラつかせてるのかもしれないね。

気をつけよう。

Amazon「ほしい物リスト」を使って本屋で書籍を買う

Amazon ほしい物リスト

最近、Amazonで書籍を買うことがめっきり少なくなった。

なぜなら、いきなりAmazonで本を買っても難解すぎて自分に合わなかったり、読みにくかったり、薄っぺらい本だったりして、結局読まずに捨ててしまうことになることが多いからだ。

Amazonでも試し読みできるけど、本全体をペラペラめくってクオリティをチェックすることができないので、「当たり」確率が低くなってしまう。

あと、もしかしたらAmazonだと買ったという気がしないからかもしれない。
“Amazon「ほしい物リスト」を使って本屋で書籍を買う” の続きを読む

Kindle Paperwhite は薄くて軽い本だ

Kindle Paperwhite

Kindle Paperwhite を先日購入した。
発売当初に買おうか検討したけど、なんとなく保留にしてた。

ホリエモンのメルマガ読んでたらKindle Paperwhiteのことが書いてあったので、あぁそろそろ買ってみようかなと。
最低でも約3万は必要なiPadと比べて7,980円という価格は電子デバイスとしてはそれほど迷う価格でもない。

Amazonでポチってから次の日の午前に届いたのはまず第一の驚きだった。
“Kindle Paperwhite は薄くて軽い本だ” の続きを読む

さくらのVPS 無料期間中でもメール送信する方法

何年か前に借りていたVPSがソフトウェア的にも古くなってきたので、新しいサーバを構築して移転することにした。

いつものようにさくらのVPSを借りる。

さくらのVPSには申し込んでから2週間の無料お試し期間があるんだけど、その間は利用制限があり、ネットワークが外部の25番ポートへ接続できないよう(OP25B設定)になっている。

ご利用上の注意 | VPS(仮想専用サーバ)「さくらのVPS」

メール送信用のポート番号となる外向きの25番ポートを閉じた設定でのご提供です。

つまり、外部のメールサーバの25番ポートに接続できないのでメールの送信ができないということだ。
無料期間中に大量の迷惑メール配信をする輩がいたのだろう。記憶ではサービス開始当初は無料期間中もメール送信できていたと思う。

この利用制限があるとSMTPのテストやメールを送信する機能のあるプログラムのテストがやりにくいのが難点。
“さくらのVPS 無料期間中でもメール送信する方法” の続きを読む

doveadm quota getでユーザ一覧が出力されない (MySQL使用時)

Dovecotのユーザ情報をMySQLで管理していて、quotaの設定を追加をしようとおもったら、doveadmでquota情報の一覧を表示するときに次のようなエラーが表示された。

# doveadm quota get -A
--------------------------------------------------
doveadm(root): Error: User listing returned failure
doveadm: Error: Failed to iterate through some users
Username              Quota name Type Value Limit %
--------------------------------------------------

“doveadm quota getでユーザ一覧が出力されない (MySQL使用時)” の続きを読む

CentOSのRPMでOSのバージョン間違い

新しいサーバをZABBIXで監視に追加するためにZABBIXのリポジトリインストール用のRPMをインストールしようと思ったら、見慣れないエラーが出てインストールできなかった。

ZABBIX-JPのyumリポジトリ利用方法 | ZABBIX-JP

# wget http://repo.zabbix.jp/relatedpkgs/rhel6/i386/zabbix-jp-release-6-6.noarch.rpm
# rpm -ivh zabbix-jp-release-6-6.noarch.rpm
警告: /var/tmp/rpm-xfer.eXQBuk: ヘッダ V4 DSA signature: NOKEY, key ID f32904ff
エラー: 依存性の欠如:
	rpmlib(FileDigests) <= 4.6.0-1 は zabbix-jp-release-6-6.noarch に必要とされています
	rpmlib(PayloadIsXz) <= 5.2-1 は zabbix-jp-release-6-6.noarch に必要とされています

rpmlibというパッケージがインストールされて無いことが原因かと思たののでyum searchで調べてみたけども該当するようなパッケージは見つからない。
ググって調べてみてもなんだか要領を得ない。

なんだろうと思って、ふとOSのバージョンを確認したら。

# cat /etc/redhat-release
CentOS release 5.8 (Final)

CentOS5系だった・・・
新しく導入したサーバだからCentOS6系だと思い込んで、CentOS6系用のRPMをインストールしようとしていた。
ただの思い込みだったわけだ。

# rpm -ivh http://repo.zabbix.jp/relatedpkgs/rhel5/i386/zabbix-jp-release-5-6.noarch.rpm

CentOS5系用のパッケージをインストールして解決。

自分で調達したものではなかったので気づかなかったという。

rpmコマンドのエラーではOSのバージョンが違うとかは特に出ないようになってるんだな。
似たようなエラーが出た場合はRPMパッケージの対応OSが合っているか確認してみよう。

CentOS6系のSRPMSの置き場所

CentOS6.3用にpostfixのsrpmをダウンロードしようと思って、いつも使っている理研のミラーの中を探してたんだけど、なかなかSRPMSというフォルダが見つからない。

前のバージョンのところにでもあるのかと思って、別なところを探していたら
http://ftp.riken.jp/Linux/centos/6.2/os/SRPMS/Sources_README

All srpms are now hosted in vault.centos.org

Sources for this repo can be found at :
http://vault.centos.org/6.2/os/Source/

と書いてある、ページを見つけた。

どうも、ソースはミラーサイトではなく、vault.centos.orgに置くようになったみたいだ。

ということで、CentOS6.3のsrpmは次のURLからダウンロードできることがわかった。
http://vault.centos.org/6.3/os/Source/SPackages/