SMART 情報が引けない

USB 3.0 対応 HDD ケース『GW3.5AX2-SU3』と Renesas の USB 3.0 オンボードコントローラの組で WD の HDD を接続している。
windows では smart 情報を引けたのだが、ubuntu でも debian でも smartmontools で smart 情報を引けずに苦労していた。
USB ドライバまわりや、smartctl -d で指定するドライバに usb まわりを指定していたのだが…

# smartctl -a -d sat /dev/sdX

で引けることが分かった。
そーなのかー

これで外出先から HDD の温度を観測できるぜ。

sshd の response が遅い

前提

  • 公開鍵認証を行なっている。
  • クライアントは putty
  • ユーザ名は空欄でアクセス
  • ユーザ名の入力フィールドが出るまでに5秒かかる
  • ユーザ名を入力してから認証完了までに5秒かかる
  • OSはdebian
  • ufw は有効
  • ポートは 22 から変更している
  • クライアントとサーバは Gigabit eather で接続
  • ubuntu server で同じ設定で運用していた時は高速であった
  • DNS を立ててないなど、サーバの機能も変更しているので、切り分けが必要

対策1: UseDNS off
効果: ユーザ名入力後の response は高速になった。

対策2: AddressFamily inet
効果: なし

mysql のログ

一般クエリログ、スロークエリログ、バイナリクエリログ、エラーログ、があるらしい。
エラーログは、意識しなくても標準で吐くようになっていることが多いと思う。
設定は my.cnf で行なうとして、設定方法はぐぐってもらうとして、各ログについて調べた内容とか自分の運用で知ったことをメモっておく。

エラーログ
mysql のエラー出力をログっているっぽい。
普通に稼動していると、起動時と停止時のログしか出てこない。
なんかエラー起こすとログに残るけど、その直前に実行されていた SQL 文とかサッパリ不明。
ざっと 1ヶ月くらい運用していて、サーバが DB エラーで 3 回~ 4 回くらい停止したのだけれど、クラッシュしたよ、ってメッセージしか残ってなくて原因がワケワカメ。
だみだこりゃ。
一般クエリログ
発行された全SQL文を残すらしい。これをオンにして再起動かけたら、一発でログのサイズが 6KB, 100行以上 とかになる。
これを吐きながら、月に 3回程度のエラーを待つのは容量の面やいざエラーが起こった時の解析量から見て面倒くさい。
多分、最後の手段。
スロークエリログ
インデックスを使わなかったクエリ、とか 1回の実行に○秒以上要したクエリ、とかを残せる。
中期的に観察するのに、ログを間引くのにはいいかも。でもこれで原因が特定できなかったら一般エラーログに託すことになるんだろーなー。
ちゃんとインデックスを作ってないと、めっちゃログ出るっぽい。

なんかインデックスを適切に作るには、explain select ほげほげ って感じでやるらしい。
ログ見て、特定のsql文が沢山出てきたら、ちゃんと調べよう。

バイナリログ
トランザクションとかの情報らしくって、DB のレプリケーションとか、復元後、最新状態までロールフォワードしたりするのに使われるらしい。
ファイル出力の設定が my.cnf にコメントアウト状態で書かれているけど、web で調べると DB 内に溜まったバイナリログを見たり消したりする方法が出てくる。
そも、他のログも DB 内に溜められるはずだけど。
まー個人運用レベルでは必要なさげ。例えば我が家では、定期的に mysqldump して、別 HDD に書き出している。とりあえずうちの鯖くらいなら、これで良いと思う。

zsh カスタマイズ

zsh で引数つきの alias を設定するには、
function で関数を定義するほかない。

function rmCR() {
    if test $# -ne 2; then
        return 1
    fi
    if test $1 = $2; then
        return 1
    fi
    tr -d \\r <$1 >$2
}

例えばこんな感じ。

(ついでに、特殊変数のメモ。)

$#
引数の数
$1 .. $n
n 番目の引数
$@, $*
引数全部をスペース区切りで列挙。@ と * の違いは不明。
$$
そのコマンドが実行された時の PID。

(その他)

set -o
setopt で設定されるオプションの一覧と現在の設定状況。アンダーバーを入れても無視される。(例: setopt vi = setopt v_i )
setopt no...
setopt で on に設定したオプションの打ち消し。でも、setopt novi しても、vi モードは完全には解除されなかった。
setopt transientrprompt
コマンド実行後、右プロンプトを消す。コピペしたい時に便利。

ufw の kern.log への出力を抑制する

/etc/rsyslog.d/20-ufw.conf で、 #&~ と書かれている行のコメントアウト「#」を消す。
rsyslog を再起動。
デフォルトのままで、/var/log/ufw.log にログは出ているので、そっちを見れば問題なし。

Contact Form 7 でメール送信できない

サーバ移転してできなくなっていたので、色々と可能性を考えたが、原因は SMTP を叩く sendmail 相当の機能がサーバにないからだった。
何のコマンドが必要かは分からんが heirloom-mailx を入れても解決しなかったので、mail コマンドではないっぽい。
とりあえず、SMTP 叩けるプラグインを入れてしのぐことにした。

前のサーバでも、SMTP 送信できるようにした記憶はないのだが…うーむ?
ローカル配送だったからかな…
(未解決)

NOOK Color へ MROM-encore

CM ベースのカスタム ROM であるらしい、MROM-encore | TechnoGeek を入れてみた。
私の端末は、nook color (買った時の記事) なので、CM9 以降 (Android 4.0 以降) はもっさりで FA らしい。
つーことで、MROM-7-encore を入れた。

CMW 導入済なので、相変わらず簡単に入れられる。

  1. 1gb_clockwork-3.2.0.1-eyeballer を microSD に焼く。気になる人は MiniTool Partition Wizard あたりでパーティションを広げる。
  2. micro SD カードに「MROM-7-20130401-encore.zip」「MROM-gapps-gb-02082013.zip」「gapps-gb-20110828-signed.zip」を入れて、NOOK Color に挿して起動。
  3. cache とか data とか advanced から Dalvik とか、まぁ気になる範囲を wipe する。
  4. install zip from sdcard を選んで、MROM-7-20130401-encore.zip → gapps-gb-20110828-signed.zip → MROM-gapps-gb-02082013.zip の順でインストール。
  5. sd card 抜いて再起動すれば OK。

MROM は、早いよ。これ使った感じはいい感じ。

んで、恒例の adb shell から不要アプリを消す (disable にする) ことにする。
もはや、このリストをメモるためにこの記事起こしたようなもんだ。
もし目当てのパッケージを特定できるんだったら、こんなコマンドを使うと早い。

# pm list packages -f | grep hogehoge(特定するためのgrepをn回連結) | sed -e 's/.*=//' | xargs pm disable

パッケージ特定に apk 名が不要な場合は、–f オプションが不要な代わりに sed の正規表現が "s/package://" とかになるのかな。

またこの ROM は、ホーム画面のショートカットを右上の info にドラッグすることで、そのショートカットの飛び先のアプリを表示してくれる。
Phone.apk を消しても Phone のショートカットが消えなかった時は驚いたが、どうやら Contacts が activity として Phone を持っていることが分かった。
SystemCleanup で Contacts の Phone activity のみ disable したら、ショートカットも消えた。

しげ老鮨

ここいってきた → しげ老鮨 (食べログは しげ老鮨 - 東村山/寿司 [食べログ])
子供が生まれていらい、なかなか外食に行けなかったが、今は家族が里帰りしているので気楽に一人で行ってきた。

車は、2台停められる。
2F に入口がある。
一人で行ったので、入ってすぐのカウンターに着席。
隣では、夏休みだからか土日だからか、お孫さんがご飯を食べていた。
うちの息子と歳も近く、食後にもくもくとごっこ遊びをしているところは、見ていて楽しい。

食べログの前評判を頼りに、花すしセット(パスタ、花すし、サラダ、スープのセット)を注文。
寿司とパスタが並ぶ謎の絵に不安を感じていたが、普通に食べていれば、寿司がなくなってからパスタが出てくる。
なので寿司は寿司、パスタはパスタだけで食べられた。

花すしは、具がカルパッチョで、あっさりとしていておいしい。
塩味がきいているので、醤油は不要。

パスタは、食べログで見た秋刀魚のパスタを期待していたものの、今回の来店ではなかった。
なので、オススメと書かれていたバジルパスタにした…ちょっとくどいかな…
でも、あっさりとしてそうなのを見付けられなかったのでしかたない。

サラダとスープは普通だった。スープはポタージュの冷製だった。

という感じで、880円のメニュー。
コストパフォーマンスは良いと思う。
奥の座敷を見てないけど、子連れで行けそうなら、また行って違うパスタも試してみたい。

大きな地図で見る

イーサネットコンバータ

WLI-UTX-AG300/C というイーサネットコンバータを買った。けっこう前に。
このイーサネットコンバータで、電話線から離れた部屋にPCを置いている。
親機が11n未対応なので、せっかくの 11n 対応による 300Mbps の効果は全く感じられないが、普通の USB 無線子機では届かない入り組んだ部屋の奥へ、無線+有線で LAN を届かせることができ、おおむね満足な性能である。
なにより、安い。

しかし…無線区間を 300Mbps のくせに、「USBは電源供給のみ」かつ「有線 I/F は 1 ポートのみ」かつ「有線 I/F は Fastether (最大 100Mbps)」とか、設計ミスとしか思えん。
有線ポートがボトルネックとか、11n 対応に期待していたら怒りまくっているところだ。

AWSについてメモ書くよ

ここに追記していく。まとまったら、またapacheの時みたく整理して記事にし直すかも。

Apache の設定 その1

/home/hoge/public_html を DocumentRoot とする時、/home/hoge が標準で 700 のため、403 が返る。
vhost を使う場合、httpd.conf の NameVirtualHost *:80 を生かして VirtualHost ディレクティブを書けば動く。
未指定の vhost を殺すには、ServerName any でデフォルト設定が書けるので、Order deny,allow かつ deny from all とする。
不要モジュール等については後日。

Amazon Linux の設定とか

sudo がパスワード無しで動いてしまう。そもそも、visudo で権限付与を見てもデフォルトユーザの ec2-user に sudo 権限ついてないしおかしい…
と思ったら、/etc/sudoers.d/cloud-init に記載されていたよ。
NOPASSWD: というのを消せば、パスワードを要求されるようになる。

httpd がサーバの OS とか apache のバージョンとか垂れ流してしまう。
ServerTokens OS の行をコメントアウトし、ServerSignature は Off とする。

まずは使い始め

AWS で Amazon Linux のインスタンスを作ってみる。
yum でパッケージ管理してるし CentOS チックだなーって思いながら apache の設定とか調べ中。
なんだこれ…

  • /etc/httpd 配下かよ
  • a2enmod とか a2ensite とかないの?どうやって有効化するの?

とか初見殺しの山。
なんか調べてみると、とにかく httpd.conf に書きまくっている感じ。debian も昔はこんな感じだった記憶があるなぁ。CentOS は今でもこうなのか。
いらん設定を消していかなければいかんらしい。

モジュールはともかく、vhost のディレクティブはまっさらから綺麗に書きたい衝動にかられる。
DocumentRoot とかベタに書くのやーめーてー