先頭行だけ grep してファイル名を表示したい

/usr/local/bin にある #!/usr/bin/python3 をみつけたい、場面です。

こんな感じ。

find /usr/local/bin -type file | xargs awk '/python3/ {print FILENAME} {nextfile}'

1行目だけ検査したらさっさと nextfile で次に移るので OK というわけ。

nextfile Stop processing the current input file. The next input record read comes from the next input file. FILENAME and ARGIND are updated, FNR is reset to 1, and processing starts over with the first pattern in the AWK program. If the end of the input data is reached, the END block(s), if any, are executed.

追記

FNR (行番号)を if で判定して nextfile することで、任意の行数を処理できます。
あと、grep といいつつ awk なタイトル詐欺ですみません。

Go のポインタメソッドとバリューメソッドのどちらが良いのか

TL; DR
ほとんどの場合ポインタメソッドにしておけば良い。

Go のメソッドは、レシーバーとして値(value)を受け取るかポインタを受け取るか選択できます。

続きを読む

手軽に Go スクリプトを実行する

Linux 限定ですが、binfmt_misc を使えば shell script や Python と同じように実行ビットを立てるだけで実行できるようになります。

  1. 以下のスクリプト/usr/local/bin/gorun とでもして保存

     #!/bin/sh
     exec go run "$@"

  2. Debian/Ubuntu なら update-binfmts があるので以下を実行

    sudo update-binfmts --install go /usr/local/bin/gorun --extension go

  3. Go スクリプトに実行ビットを立てる

    chmod a+x hello.go

  4. hello.go が直接実行できるようになる

     $ ./hello.go
     Hello World!

小ネタで頻出と思いますけど。

スプリットブレインが起きたら ARP フラッシュが必要になった

これまた誰かの役に立てばということで。

keepalivedVRRP)はその仕組み上、ネットワーク分断時にマスターが二つ以上できます。俗にいう、スプリットブレインというやつです。

ネットワーク分断が解消したのち、マスターは一つに収束します。ネットワークスイッチの類であれば大概の場合これで問題はありません。ええ、問題はないはずでした。

続きを読む

PERC9 H730 RAIDコントローラーで Non-RAID Disk を扱う

(誰かの)お役立ちメモ。

Dell 13世代機の RAID コントローラーには pass through モード、またの名を Non-RAID Disk に設定する機能があります。 PERC9 とか H730 とかいう世代のものです。(←検索キーワード)

一部の HDD を RAID (たとえば RAID1)にしながら、残りの HDD を OS にそのまま使用させられる機能で、たとえば ZFS や Btrfs のように HDD を自力で RAID として取り扱えるモダンなファイルシステムにうってつけです。

続きを読む

Ubuntu 14.04 の Apache mod_proxy_fcgi で php 動かすのは厳しい話

2010 年代になってまだ Apache だの PHP だの使っているの?っていう突っ込みは却下です。 世の中には様々な事情を抱えた人がいるのです。生暖かく見守ってください。

さておき、Apache 2.2 の頃、FastCGIPHP を動作させるといえば mod_fastcgi や mod_fcgid を利用して、以下のような httpd.conf を作成していたわけです。

続きを読む

IPv6 は人類には早過ぎたんだ

人類は大袈裟ですが、私には厳しかったという話。

続きを読む