2019/02/15

時間の範囲を指定してログを抽出する

syslog や apache のログファイルなどから時間の範囲を指定してログを抽出したい場合、 ログファイルの時間表記をそのまま比較するのは面倒なので一度 epoch に置き換えて比較すると楽だ。

現在時刻から epoch は date (1) のフォーマット指定 '+%s' を利用する事で取得できるが、 指定した時刻から epoch を取得する汎用的な手法は現状では存在しないので今回は GNU date の '-d' オプションを利用する。

例として combined 形式の apache のログの時間範囲を抽出してみる。
combined 形式の apache のログは以下のフォーマットとなっているので、時刻は空白区切りの4番目のフィールドに格納されている。 そこで、ログの行毎に4番目フィールドの時刻を epoch に変換して比較する事で指定された時間内のログを抽出できる。

192.168.15.134 - - [14/Feb/2019:03:35:54 +0900] "GET / HTTP/1.1" 200 1920 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
192.168.99.23 - - [14/Feb/2019:07:20:35 +0900] "GET / HTTP/1.1" 200 1920 "https://www.bsdhack.org/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36; 360Spider"
192.168.157.241 - - [14/Feb/2019:09:28:45 +0900] "GET / HTTP/1.1" 200 1920 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
192.168.15.143 - - [14/Feb/2019:09:58:44 +0900] "GET /bsdhack.css HTTP/1.1" 200 3246 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
192.168.93.5 - - [14/Feb/2019:12:03:47 +0900] "GET / HTTP/1.1" 200 1920 "-" "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1"
    

ただし、標準的な apache のログに格納されている時刻情報はそのままでは date (1) の '-d' オプションでは変換できない。

$ date -d "14/Feb/2019:09:28:45"
date: invalid date `14/Feb/2019:09:28:45'
    
そこで、 まずは date (1) で変換できる様な形式に変換してから変換する。 そのためには日付けの区切り文字 '/' と、日付け部と時間部を分割している ':' をスペースに置換すれば良い。
$ date -d "14 Feb 2019 09:28:45"
Thu Feb 14 09:28:45 JST 2019
    
全体の流れとしてはログファイルから1行ずつ読み込み、時刻フィールドを epoch に変換して基準時刻と比較する処理を行う。 今回は全ての処理を awk (1) を利用して実装してみる。

  1#!/bin/sh
  2#   $1: 開始時間 -- date(1) が認識できる形式
  3#   $2: 終了時間 -- date(1) が認識できる形式
  4#   $3: ログファイル
  5
  6# 開始時間
  7start=$(date '+%s' -d "${1}")
  8# 終了時間
  9end=$(date '+%s' -d "${2}")
 10# ログ抽出
 11awk -v "start=${start}" -v "end=${end}" '{
 12    # 時刻フィールドを date(1) が認識できる形式に変換
 13    gsub(/[][/]/, " ", $4)
 14    sub(/:/, " ", $4)
 15    # ログの各行について時刻を epoch に変換する
 16    # $4 にはスペースが含まれているので全体をクォートする
 17    cmd = sprintf("date +%%s -d '"'%s'"'", $4);
 18    # date(1) を実行して epoch を変数 s に取得
 19    cmd | getline s;
 20    # コマンド実行でオープンされたディスクリプタをクローズ
 21    close(cmd);
 22    # 行が範囲内なら出力する
 23    if(start <= s && end >= s)
 24        print $0
 25}' ${3}
    

これで開始時間から終了時間の間のログを抽出できる。
行毎に時間の変換処理を実行するので実行に時間はかかってしまうのが現状の問題点。

2019/01/31

とあるサイトが変更になった時になるべく確実に変更通知を受け取りたい

なるべく確実に変更通知を受け取るためには、普段携行している iPhone への通知が一番良さそうに思う。
iPhone への通知で一番最初に思い浮かぶのは PUSH通知 (APNS) なのだが、 APNS を利用するためには Apple への Developer 登録などが必要で、そう簡単に送る事ができないと思う (Developer 登録などが不要で簡単に PUSH 通知を送る方法があれば是非教えて下さい)。

そこで iPhone で受信しているアドレスにメールを送信し、 更に普段からチェックしている slack で自分宛にダイレクトメッセージを送信する事にした。
iPhone の設定によりメールを受信した時や slack でダイレクトメッセージが投稿された時の通知を有効にする事で、 変更通知がなるべく確実に受け取れる事になると思う。

そのために以下のスクリプトを Linux などが稼働しているサーバ設置して cron などにより自動実行する。

  1#!/bin/sh
  2
  3# site
  4url="https://www.example.com"
  5old=${HOME}/.old.html
  6new=${HOME}/.new.html
  7# for mail
  8addr="mail@exapmle.net"
  9subject="[SITE CHANGEED]"
 10body="SITE CHANGED: ${url}" 
 11# for slack
 12slack="https://hooks.slack.com/services/XXXXXXXXX/YYYYYYYYY/ZZZZZZZZZZZZZZZZZZZZZZZZ"
 13name="name"                 # post name
 14channel="#channel"          # post channel
 15
 16curl -s ${url} > ${new}
 17test -f ${old} &&  
 18cmp -s ${old} ${new} || echo "${body}" | mail -s "${subject}" ${addr} &&
 19curl -sLX POST --data-urlencode "payload={\"channel\": \"${channel}\", \"username\": \"${name}\", \"text\": \"${body}\"}" ${slack}
 20
 21mv $new $old
    
slack でチャンネルではなくダイレクトメッセージを送信する場合は channel の値を適切に変更する。
web を検索すると `channel: @名前` とすれば良いとの記事を多く見かけるが、少なくとも最近の slack ではエラーとなってしまう。
その場合、slack の web 画面の左側に表示されている `ダイレクトメッセージ` をクリックした時に遷移するページの URL の最後の部分 (https://XXX.slack.com/messages/YYYYY/YYYYY の部分) を指定するとダイレクトメッセージが送信できる。

2019/01/02

本年度初キャンプ

本年度の初キャンプとして我が家では定番となった有野実苑に行って来ました。

Image: 20190102_035637276_iOS.jpg

安定の有野実苑

今回は…なんと!薪ストーブのお披露目となりました。

冬の時期に有野実苑に来る度に薪ストーブをレンタルして温まっていたのですが、 ついに自前の薪ストーブをゲットしてしまいました。
購入するにあたって機種などを色々と調べて悩んだのですが、 手入れの簡単なステンレス製で安心の日本製という事で、 tent-mark DESIGNS のウッドストーブを選びました。 純正オプションのウォータータンクがとても便利で、 いつでもお湯が使えるのは特に冬の時期には素晴らしいです。

Image: 20190102_053327151_iOS.jpg

tent-mark DESIGNS の薪ストーブ

Coleman の T.P.Crest の前室部分にセンゴクアラジンのカセットガスストーブを設置して、 クッションマットを敷いて電気毛布でコタツ状態にした事でとても素敵な空間が出来ました。
この時期のキャンプは初めてなので寒さにおびえていたのですが、 薪ストーブ + コタツのおかげで快適に過ごす事ができました。

Image: 20190102_063358447_iOS.jpg

お座敷コタツスタイル

キャンプ場の入口付近で地元のイチゴを買って来ておやつにチョコレートフォンデュを食べたのですが、 テーブルコンロとして OPTIMUS の 8R が大活躍してくれました。

Image: 20190103_054055367_iOS.jpg

OPTIMUS 8R でチョコフォンデュ

温暖な千葉とは言えやはりこの時期は寒い様で、朝起きるとケトルの中の水が凍っていました。
水が凍る様な寒さの中でのキャンプは初めてなのですが何とかなるモンですね。

Image: 20190102_220822246_iOS.jpg

ケトルの中の水が凍結

2018/12/01

キャンプツーリング その2

前回 のキャンプが相当楽しかった様で、 それほど時間をあけずにまたもや一緒にキャンプツーリング。

Image: 20181201_021208487_iOS.jpg

荷物満載のバイク2台

今回は千葉市の住宅街に忽然と姿を現す昭和の森 フォレストビレッジキャンプ場に行って来た。

Image: 20181201_053130183_iOS.jpg

昭和の森フォレストビレッジ

このキャンプ場は本当に住宅街の真ん中にいきなり山があって、その山の中にキャンプ場があるという凄いロケーション。
施設の入り口前には普通にアパートや一戸建ての住宅があって凄く不思議な感じなんだけど、 一歩キャンプ場に入るとそんな事を忘れさせてくれる位山々しい雰囲気に溢れている。

Image: 20181201_053129183_iOS.jpg

広めのサイト

今回はタープを持参する予定はなかったのだが、友人のたっての希望でタープを持って行った。
小型とは言えテントを二張りするので、大・中・小とあるサイトのうち中を予約したら驚く程広かったので持て余し気味。
ど真ん中に広々とタープを張ってもまだまだ余裕があるのでお互いのテントを大きく離して設営してみた。
(小サイトを2サイトでも良かった様な気がする設営方法)。
住宅街のど真ん中とは言え自然感があふれているので自然を感じられる様に贅沢に広く使うのは悪くないかな。

Image: 20181201_083046924_iOS.jpg

肉だ!

今回はヨコザワ鉄板を持参したのでステーキ肉をワイルドに焼いて Buck のフォールディングハンター 110 でワイルドにカットする。
他にも友人の希望でジャン漬けした牛カルビや焼き鳥など、オッサン二人が欲望の赴くままに肉! 肉! 肉! を喰いまくる。
前回 も食べる事しか書いていないけど、実際、食べる事しかしていない気がする。
(ま、言っても街中だしそれほど観光する場所もないと言えば無いのだけれど)。

Image: 20181205_034814638_iOS.jpg

ヘキサタープ

オッサン二人が肉を喰って寝るだけのキャンプではあったが日頃のストレスから解放されてとても楽しい時間を過ごす事が出来た。

何度も言うけど住宅街の真ん中にあるとは思えない程素敵なキャンプ場でした。

2018/11/17

キャンプツーリング

最近キャンプを始めた友人とキャンプツーリング。
というか、友人にとっては今回が初めてのキャンプという事なので、初心者向けの割と easy なキャンプをしてきた。
今回選んだのは道志の入り口付近にある青野原野呂ロッジキャンプ場。

Image: 20181117_032841229_iOS.jpg

野呂ロッジキャンプ場

休日になると慢性的に渋滞している東名高速を抜け数時間で到着したら、チェックインの後早速設営開始。
初心者の割には問題も発生せずにテキパキと設営が完了した。
今回は天気の心配があったので普段愛用している大きめのタープを持参した。
更にレンタルの薪ストーブがあったのでこちらもお借りする。

Image: 20181117_065525679_iOS.jpg

設営完了して薪ストーブに点火

バイクなので大きな荷物は当然積載できないので、装備はミニマムになってしまうのだが、そのそもキャンプは『不自由を楽しむ』ものなので多少不便な方が楽しい(かな?)
Trangia のストームクッカー、Helinox のチェアワン ミニなど、普段家族キャンプで使っている道具とは異なるキャンプ道具を使うのもバイクキャンプの魅力かな?

Image: 20181117_061758488_iOS.jpg

この後若干雨が降ったのでタープの有り難さを実感

ストームクッカーでご飯を炊いたら、薪ストーブの上でフライパンとコッヘルを利用して料理開始。
今回用意した食材は豚バラ厚切り、牛カルビ、ミックス野菜等なので、 まず豚バラ肉を塩こしょうしてあぶり焼きし、出て来た脂で野菜を炒め塩こしょう、醤油で味付け。 牛カルビはジャンにつけ込んでからフライパンで焼き肉風にして美味しく夕食を頂きました。

Image: 20181117_084326182_iOS.jpg

薪ストーブで調理

食事が終わってまったりしている時間に少しだけ雨がパラついて来たが、 大きなタープのおかげで殆ど濡れることもなく、雨もすぐ止んだので問題なし。

友人とのキャンプはそれほど経験がないが、家族キャンプやソロキャンプとは違った楽しさがあって良い感じ。 友人も楽しんだ様で素晴らしい時間を過ごす事ができた。

2018/10/30

Happy Birthday!!


May this birthday be just the beginning of a year filled with happy memories, wonderful moments and shining dreams.

2018/07/03

久々のソロキャンプ

オートバイにキャンプ用具を積載してソロキャンプをして来た。
バイクでのソロキャンプは荷物をいかにコンパクトにまとめるかが鍵になるので、 テントはモンベルのクロノスドーム2型、 シュラフは同じくモンベルのダウンハガー800 の #3 を選択。 その他モンベルのULコンフォートシステムエアパッドなどを調達し、 更にクッカーはトランギアのストームクッカーと 主に登山用の道具でなるべくコンパクトにまとめたのだが、 着替えなども含めると結構な荷物になってしまった。

Image: 20180630_022137416_iOS.jpg

キャンプ道具などの荷物を満載

久々のソロキャンプ (何と 30年振りくらい) なので、 まずは身体と気持ちの慣らしのために近場のキャンプ場で練習(笑)を兼ねて、 まずは千葉県はホウリーウッズキャンプ場で一泊キャンプ。

Image: 20180630_065126616_iOS.jpg

ホウリーウッズキャンプ場

自宅からは2時間弱で到着する距離なのでお昼頃にノンビリ出発しても14時頃には設営が全て完了している。 やはり近場のキャンプ場は便利で素晴らしい。

Image: 20180630_052903831_iOS.jpg

森の中の気持ちが良いサイト

ホウリーウッズは最近の高規格なキャンプ場とは一線を画している感じのキャンプ場で、 炊事場ではお湯は出るが、トイレも簡易トイレだし、ゴミも基本は持ち帰りが必須、 そして外灯は必要最低限しか設置されていないので、宿泊サイトは夜は真っ暗になってしまう感じのキャンプ場。 自然と不自由さを楽しめる余裕があればとても素晴らしいキャンプ場だと思う。

Image: 20180630_044446076_iOS.jpg

テントとハンモックの設営が完了してノンビリ

夕食は自宅から持参した米を炊いたら、途中のスーパーで買った牛カルビ(ジャンで味付け)、豚バラ肉(塩胡椒でシンプルに)、 グリーンアスパラ(塩だけで味付け)、野菜などをストームクッカーのフライパンで焼いてガツガツと食べる食べる…。

Image: 20180630_084106787_iOS.jpg

グリーンアスパラ
Image: 20180630_085055891_iOS.jpg

牛カルビ
Image: 20180630_090649202_iOS.jpg

豚バラ

食事が終わったらキャンドルの灯りの中でペーパードリップの珈琲をノンビリと堪能。 MUNIEQ の Tetra Dripは組み立て式のコーヒードリッパーで、 薄さ数mmになるのでコンパクトに収納できる。ステンレス製で見た目も美しいのでキャンプにはお勧めのドリッパー。

Image: 20180630_094711372_iOS.jpg

Tetra Drip で珈琲タイム

少しノンビリしていると段々暗くなってくるのでシャワーを浴びたら21時には就寝タイム。 人も少なく静かなのでノンビリ寝る事ができました。

Image: 20180630_212746232_iOS.jpg

朝食前の珈琲ブレークタイム

2018/04/16

オイル交換

前回のオイル交換から 4,000Km 走行したのでオイルとエレメントを交換。 今回も NUTEC の NC-40NC-41 を1対1の割合でブレンドし、オイルエレメント交換時の不足分 200cc は NC-82 を添加する。 エレメントも前回同様 K&N のエレメントを使った。

Image: 20180414_023058133_iOS.jpg

今回はメンテナンススタンドを利用して作業

今回は先日入手したメンテナンススタンドを利用しての作業を行ったのだが、サイドスタンドだけで作業するよりはるかに楽に作業ができた。

Image: 20180414_023023508_iOS.jpg

オイルエレメントも交換

前回から使っている K&N のエレメントは 17mm のボルトが装着されているので簡単に外すことができると思ったのだが、ボルトの精度が割と低い様で KTC のメガネレンチを使ってもボルトトップがナメてしまいそのままでは外せない様になってしまった。 しょうがないので、以前一般的なタイプのエレメントの交換に使っていた 3 本爪タイプのオイルフィルタレンチを使って何とか取る事ができた。
3 本爪タイプのオイルフィルタレンチはある程度のサイズに対応でき、緩める方向に回転させる力でエレメントをガッチリ挟んでくれるので固着したエレメントも外す事ができる。 自分でエレメント交換をする場合はお勧めの工具の一つ。

Image: 20180414_025037974_iOS.jpg

3本爪タイプのオイルフィルタレンチ

NUTEC のオイルはエンジンの吹け上がりやシフトフィーリングなどでその効果が実感できる。 今の所 NUTEC 以外のオイルを使うきは起きないほど素晴らしいオイルだと思う。

2017/12/18

有野実苑で始まり有野実苑で終わる

本年度最後 (多分) のキャンプに行って来ました。

Image: 20171216_030708986_iOS.jpg

安定の有野実苑

この時期のキャンプは初めてなので

  1. 電源サイト
  2. 温暖な地域
  3. ストーブのレンタルあり
などという軟弱な条件で選んだ結果有野実苑に行ってきましたよ。

今回のサイトは D-8 で炊事場が目の前。
夕方から夜にかけて雨の予報もあったのでテントとタープを連結した感じで設営。 TP クレストの設営はやはり大量のペグ打ちが難点、というか大変ですね。
今回もマキストーブを借りたのでサイトの中心はマキストーブ。 これ暖かくて素晴らしいですね。冬のキャンプには必需品と言っても過言ではない (意訳すると『欲しい』)。

Image: 20171216_054706909_iOS.jpg

クレスト+タープとマキストーブ

今回もランチはキャンプ場に併設されている「農園リストランテ」にて頂きます。

Image: 20171216_045214956_iOS.jpg

マルゲリータ

Image: 20171216_051205013_iOS.jpg

インスタ映えのデザート

マキストープの煙突台に小さめのテーブルが備え付けられていて作業するのにとても便利。 この日はチリ・コン・カンとフランスパンにしたのでストーブの上のダッジオーブンで全て事足りてテーブルは完全に物置状態。 結局食事もストーブの周りに椅子を置いて食べてしまったのでコッヘル、ガソリンストーブ、などの出番なし。
ストーブ借りて冬キャンプする時は荷物を減らす事ができそうですね。

Image: 20171216_074718988_iOS.jpg

ストーブを中心にしたサイト構成

Image: 20171216_215728437_iOS.jpg

赤々と燃えさかるマキストーブ

夜はもっと寒いかと思い電気毛布を持参した上で湯たんぽまで投入したのですが、以外と暖かくて快適な眠りに付けました。


しかーし! 明け方は流石に寒くシュラフの中で凍えてました (なんと電気毛布がずれていて自分の下には殆どなかったのが原因)

朝ご飯は前夜の残りのチリ・コン・カンとホットサンドをやはりストーブを囲んで。 チタン製のシェラカップはストーブの上に直接乗せて保温できるので便利。

Image: 20171216_225355606_iOS.jpg

すっかり定番となったホットサンドの朝食

Image: 20171216_230604238_iOS.jpg

クレストのトンガリ帽子が判りやすい後からのショット

翌日はオプションでかまど炊きの麦とろご飯と地場の自然薯をランチにいただきました。

Image: 20171217_022315687_iOS.jpg

自然薯の麦とろご飯




今年のキャンプはこれで終了です。

来年も沢山の思い出が出来ます様に

2017/12/04

親子バイク教室 サーキットコース

前回に引き続き親子バイク教室。

Image: 20171202_035742366_iOS.jpg

親子バイク教室 サーキットコース

トライアルコースを完了したので今回はサーキットコースとなり、親子で併走できる様になった。
場所は静岡県にあるデイトナの本社。 行くまで知らなかったのだが、デイトナ社には割と本格的なテストコースがあって、 今回はそのテストコースをお借りしてのバイク教室だった。
前回のトライアルコースでは基礎的な内容をしっかりと教わったのだが、 今回は簡単なおさらいをしただけで子供達は割とすぐに走行を開始していた。

サーキットコースでは親子で走行する事ができる。お借りするのは 250cc のトリッカー。 絶対的なスピードこそ遅いが、低速トルクもあってそこそこ乗りやすい悪くないオートバイかな。

Image: 20171202_035750406_iOS.jpg

TTR50 と Tricker

Image: 20171202_050343351_iOS.jpg

YAMAHA Tricker

開始早々親子が合流して外周コースの併走を開始する。
タンデムではなく娘と併走する事がこんなに早く実現するなんて結構感激(クローズドコースだけどね)
タンデムの時に利用しているインターコムで会話をしながら一緒に走るのは不思議な感じでした。

Image: 20171202_041835528_iOS.jpg

親子で走行中

数周の外周走行の後は今回の課題走行。
一本橋とスラローム走行の練習が始まる(親はどちらも走らせて貰えなかった…ちょっと残念)。
一本橋は最初からとても上手でスムーズ、かつ速度をコントロールしてゆっくりと渡っていた。 インストラクターもお世辞抜きでとっても上手だと褒めてくれたのだが、バランスの取り方などが本当に上手だった。
スラロームの方は慣れていない事もあって特に最初の頃はギクシャクしていたのだが、慣れるにつれてスムーズさを増し、 最後の方はスロットルコントロールをちゃんとしながらスムーズに連続したコーナーをクリアしていた。

Image: 20171202_044544060_iOS.jpg

キメポーズ



Copyright © Mitzyuki IMAIZUMI 2008,2009. All rights reserved.