2017/04/25
忘れてた
今日はrubyに標準でerbというテンプレートエンジンがついていることを知った
2017/04/24
今日は先日の出張分の代休でした
2017/04/21
退社
明日は出張なので忘れ物をしないようにしよう
2017/04/20
忘れてた
最近物忘れが激しい気がする
今日も一歩間違えれば大問題だった
2017/04/19
退社
今日は久しぶりに遅刻してしまった
気を付けよう
rubyでslack通知
↓の記事でwhile readしないとうまく動かない理由がわかったので、slack通知の部分を変更した nanka.hateblo.jp
動かない理由はこちら nanka.hateblo.jp
改善版
require 'net/http' require 'uri' require 'json' uri = URI.parse("https://hooks.slack.com/services/*/*/*") STDIN.each do |line| payload = { text: line, channel: ARGV[0], username: ARGV[1], icon_emoji: ARGV[2] } Net::HTTP.post_form(uri, { payload: payload.to_json }) end
tail -F
の結果をslackに流すだけなので、複数行の通知は諦めた(STDIN.read
を使うとtail -F
からEOFがやってこないので永遠に待ち状態になる)
STDIN.each
で標準入力を待ち構えて、やってきたら送信を繰り返すだけ
こうすることでやっと↓のように使える
tail -F logfile | ruby slack.rb "#room" "name" ":emoji:"
rubyの正規表現で文字列抽出
matchを使うと正規表現で文字列を抽出できる
hoge = 'ip = 255.255.255.255' ip = hoge.match(/ip = (\d+\.\d+\.\d+\.\d+)/)[1] puts ip
$ ruby -e "hoge = 'ip = 255.255.255.255'; ip = hoge.match(/ip = (\d+\.\d+\.\d+\.\d+)/)[1]; puts ip" 255.255.255.255