ちぎっては投げるブログ

Programming, Android, RaspberryPi, Digital Devices, Kinkuma Hamster...

Jenkinsのジョブ内でexpectコマンドを呼ぶときの注意点

f:id:mczh:20161002224207p:plain

expectコマンドは、シェルの特定文字列の出力を待ち、任意文字を入力として与えることができる。

引数で渡すことのできないパスワード入力などに使われる。たとえばsshのパスワード入力の自動化とか。

expect -c "
set timeout 5
spawn ssh hoge@serverHost
expect \"password:\"
send \"PASSWORD\n\"
expect \"$\"
interact
"

このようにすると、sshがシェルスクリプト上で自動で実行できる。

expectコマンドは、一般に最後はinteractで終わらせる例が多く見つかるが、これはユーザの標準入力を受け付けるようにするコマンドである。 JenkinsJobやcrontabで実行した場合には画面がないため、interactがうまく実行できず、処理がおかしくなってしまう。 そのため、interactは使わないようにする。

ところで、このような処理が必要になる場合というのは、sshでリモートサーバのコマンドを自動実行するスクリプトであると考えられる。 その場合には、expectコマンドではなく、前記事で書いたように特定のコマンドのみ実行できる秘密鍵を登録してあげるほうが良い。

denpa-shinbun.com

不健康に健康を維持したい僕の完全食COMP導入

f:id:mczh:20161003215005p:plain

完全食とは

完全食といえばソイレントが有名だが、輸入となると敷居が高い。 そこで、日本でも買える国産のソイレントのようなものとして、COMPというものがある。

www.comp.jp

完全食というのは、 これさえあれば何もいらない というSurfaceのような食事を目指して作られているものである。 時短のために簡単に作れて簡単に摂取出来る形式として、粉で提供されて液体に溶かして飲むタイプが主流になっている。

なぜ完全食を導入してみるのか

  • 週一で焼き肉をする私だが、そろそろアラサーであり、健康診断に不安を感じる。
  • その一方で少食なので、大量に食べると疲れる
  • 朝飯を食べる時間がない(ぎりぎりまで寝ていたい…
  • 自炊はめんどくさい
  • 土日に家から出ずに過ごしたいときのために、家に食べるものを置いておきたい

このように、健康のために努力したくない不健康な私が目をつけたのが完全食COMPである。販売元がこのようなターゲットを想定しているかは定かではない。(つまり、この記事を真に受けて、完全食さえとれば健康になれる!とは思わない方が良いだろう)

たぶん、自堕落を物理で殴るような方法が好きなのだ、ルンバしかり、食洗機しかり。ただし、挙げた二つは市民権を得ているが、今回のコレはだいぶ偏っていると思う。

f:id:mczh:20161003214238j:plain

感想はまた後日

とりあえずお試しキットだけでなくて、そのあとに追加注文もして飲んでいる。

最近ブログを更新していなかったが、一昨日あたりに久しぶりに書いたらリアクションが僅かながらあったので、やる気が出てきた。ここでやりすぎて一気に書いてしまうと継続しないので、今回はCOMPの紹介にとどめ、実際に飲んだ感想はまた後日の記事とする。

ちなみに、この記事はベッドに寝ながらスマホでポチポチ30分くらいで書いた。とりあえず書いて公開して後から直せばええやろ、の方針の方が長続きしそうだ。

denpa-shinbun.com