kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Shell

Shell で「テンプレートエンジン」のような仕組みを実現できる envsubst コマンド

少し前に envsubst コマンドの存在を知った.envsubst コマンドを使うと,変数展開など,Shell で「テンプレートエンジン」のような仕組みを実現できる.例えば,設定ファイルを生成するときなどに使える.なぜ今まで知らなかったんだろう!と思うけど,今回…

iTerm2 のプロファイルを peco で切り替える

普段 iTerm2 でターミナル作業をするとき,Colors は Solarized Dark を使っている.ただし,モブプログラミングをしたり,研修中にデモを見せたりするときに,スクリーンに Solarized Dark で投影すると視認性が悪いため,毎回 Edit Session or Open Profil…

シェルスクリプトのテストフレームワーク Bats を試してみた

シェルスクリプトのテストフレームワーク Bats を試してみた. github.com たまにコントリビュートをしている Amazon ECS (Elastic Container Service) のデプロイツール ecs-deploy のテストコードで Bats が使われているので,少し書いたことがあり,もっ…

AWS CLI で ALB 配下のインスタンスを deregister / register する

AWS CLI で ELB 配下のインスタンスをローリングデプロイする方法は去年にまとめた.aws elb deregister-instances-from-load-balancer と aws elb register-instances-with-load-balancer を使うだけじゃなく,aws elb describe-instance-health を使って w…

CircleCI + ShellCheck でシェルスクリプトを静的解析する

シェルスクリプトのレビューを効率化するため,シェルスクリプト専用の静的解析ツール "ShellCheck" を導入して,さらに CircleCI で自動テストすることにした.導入検証も兼ねて,個人的に使ってる dotfiles に導入してみた話をまとめる. github.com apt-g…

Zabbix API で Shell からメンテナンスを操作する

デプロイ時に nginx を再起動するなど,Zabbix の監視トリガーに該当するオペレーションを実行する場合,無駄にアラートが鳴ってしまう場合がある.正しくは Zabbix のメンテナンスを作成することで,メトリクスを収集しながら監視トリガーに該当しないよう…

AWS CLI で ELB に register しているインスタンスを操作するスクリプトを書いた

AWS CLI を使って ELB からインスタンスを deregister したり register したりするスクリプトを shell で書いてみた.ポイントは ELB の waiter 部分で,実際にインスタンスを deregister してもすぐには反映されないため,数秒間隔でチェックをするようにし…

Bash で複数のファイルやディレクトリの存在確認をする

シンプルなことだけど,気になったのでまとめておく.やっぱり sh は苦労するw 単一のファイルもしくはディレクトリの存在確認をする test コマンドの -e オプションで,ファイルもしくはディレクトリの存在確認ができる.以下の例では file_a にしてるけど…

while read の中で rsh を実行するとループが止まってしまう件

kshでwhile readを使って1行ずつ処理するプログラムを書いていて,その中でrshコマンドを実行するとその時点でループが止まってしまうという謎の事象に遭遇した.はじめはどこか別のところにバグがあるんだろうと思ってコードを削ってみたり,テストコードを…