IT

手順書のLinuxコマンドは短く短く!

こんにちは。面倒くさがり屋エンジニアのための”楽をしようよ”コーナーです。

他人が作成したサーバー作業手順書の何がイヤかっていうと貼り付けるコマンドが長いときです。どうしても長くなってしまう場合は別です。

無駄に長いコマンドは作業ミスを誘発するし、手順書レビューでも間違いを見落とさないか不安です。それに貼り付けるのも面倒ですね、長いコマンドは。

たとえば、こういうコマンドは短くして欲しいです。

# cp -p /etc/fstab /etc/fstab-20200101

修正前にバックアップを取るときにやりますね、こういうの。しかし見づらい。Linux使いとしては同じ事を(/etc/fstab)を2度も書くのって何だかイヤじゃないですか?しかも日付を直書きしている場合は更にイケてないですよね。手順書作る度に日付を修正するとか面倒じゃないですか。

こういうときは次のようにすると良いと思います。

# cp -pv /etc/fstab{,-$(date +%Y%m%d)}

わたしの趣味で「-v」オプションを付けています。作業ログに残すためにもLinuxコマンドの出力はできるだけ冗長にした方が良いと思っています。普段の作業だと鬱陶しいので-vなんて付けませんが。

実行するとこんな感じになります。

# cp -pv /etc/fstab{,-$(date +%Y%m%d)}
'/etc/fstab' -> '/etc/fstab-20200131'
#

全然コマンドが短くなってないじゃないか、むしろ長くなっているじゃないか、そう思うかもしれませんが、上記の例はパスが短いからであって深いパスになると恩恵が分かるはずです。

そしてcpだけではありません。diffするときもcpをdiffに変えるだけで良いので楽です。

# diff /etc/fstab{,-$(date +%Y%m%d)}

この手のコマンド短縮はsshで流し込む時も画面がスッキリするので良いのではないかと思っています。

# Target= "
hosta
hostb
hostc
"
for j in ${Target}; do
echo ------- $j -------;
ssh $j 'cp -pv /etc/fstab{,-$(date +%Y%m%d)}'
done

こんな感じでhosta~cに同じコマンドを流す時なんてcpとかdiffを頻繁に使いますが、こうしておくと手順書もスッキリ、作業担当も目が疲れない、良いこと尽くめじゃないですか。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)