2019/10/31
exif 情報を利用した画像の整理スクリプト
iPhone で撮影した画像を macOS 標準の イメージキャプチャ などを利用して Mac に取りこんだ後、
exif 情報を参照して画像ファイルを整理するスクリプトです。
利用するためには exiftool が必要となりますので、Homebrew または MacPorts を利用して導入して下さい。
macOS 10.14.6 (Mojave) での動作を確認していますが、exiftool 以外は POSIX に準拠したコマンドしか使っていないので、
exiftool さえ準備できれば他のバージョンの macOS はもちろん、FreeBSD や Linux 上でも稼働すると思います。
1#!/bin/sh 2# 検索する exif タグ 3tag="DateTimeOriginal ModifyDate CreateDate" 4 5# 生成する画像ファイル名に追加する文字列 6id="_iOS" 7 8# 画像ファイル格納先ディレクトリ 9base=${HOME}/CameraFiles 10picture="Pictures" 11movie="Movies" 12unknown="Unknown" 13 14# 15# exif 情報から画像の作成日を取得 16# $1: ファイル 17# 18getDate() 19{ 20 21 local _t _d 22 23 for _t in ${tag} 24 do 25 _d=$(exiftool -${_t} "${1}") 26 if [ -n "${_d}" ] 27 then 28 echo ${_d} | awk '{ print $(NF-1), $(NF)}' | sed -e 's/:/ /g' -e 's/\..*//g' 29 return 30 fi 31 done 32 33} 34 35# 36# 格納先のファイル名を生成 37# ファイル名は ${base}/TYPE/YYYY/MM/YYYYMMDD_HHMMSSXXX_iOS.EXT の形式 38# XXX は 000 から 999 までを自動で採番する 39# $1: 格納先ディレクトリ 40# $2: 日付 (YYYYMMDD) 41# $3: 時間 (YYYYMMDD) 42# 43getName() 44{ 45 46 local _n _nn 47 48 _n=1 49 50 while [ ${_n} -le 999 ] 51 do 52 _nn=$(printf "%03d" ${_n}) 53 if ls "${1}/${2}_${3}${_nn}${id}"* > /dev/null 2>&1 54 then 55 _n=$((_n + 1)) 56 else 57 break 58 fi 59 done 60 61 echo "${1}/${2}_${3}${_nn}${id}" 62 63} 64 65# 66# メイン処理 67# 68ls -1 *jpg *png *mov | while read i 69do 70 # ファイルの拡張子取得 71 ext="${i##*.}" 72 73 # 拡張子でサブディレクトリを指定 74 if [ "${ext"} = "mov" ] 75 then 76 type="${movie}" 77 else 78 type="${picture}" 79 fi 80 81 # exif 情報から作成日を取得 82 set -- $(getDate "${i}") 83 year=${1} 84 month=${2} 85 day=${3} 86 time=${4}${5}${6} 87 88 if [ -n "${year}" ] 89 then 90 # 作成日が取得できた場合 91 dst="${base}/${type}/${year}/${month}" 92 name="$(getName "${dst}" "${year}${month}${day}" "${time}").${ext}" 93 else 94 # 作成日が取得できない場合 95 dst="${base}/${type}/${unknown}" 96 name="${dst}/${i}" 97 fi 98 99 # 格納先ディレクトリ作成 100 mkdir -p "${dst}" 101 # ファイル格納 102 cp "${i}" "${name}" 103done
2019/10/30
2019/07/16
ツインリンクもてぎ
週末の三連休はキャンプに行く予定でしたが、天候不順のために急遽キャンセルして栃木のツインリンクもてぎに行って来ました。
ツインリンクもてぎはホンダが運営元の国際規格サーキットで、遊園地も併設されているので以前から気になっていましたが、
娘の身長的な問題で行ってなかったのですが、最近やっと 135cm を越えたので一部以外のアトラクションは楽しめる様になったので行って来ました。
今回の一番の目的はジップライン。2種類あるジップラインのうち、娘の体重的な理由で「森のジップライン ムササビ」にトライしてみたのですが、
案内付きで90分程度のコースで6種類のジップラインに3種類の吊り橋まであってとっても楽しめました。
家族全員ジップラインは初めての体験でしたが、本格的な装備を装着して滑車1個で滑り降りるのはとっても爽快です。
ジップラインを楽しめただけでも来て良かったと思える楽しいアトラクションでした。
ジップラインの後はサーキット併設の遊園地ならではのモータースポーツ系のアトラクションを楽しみます。
まずは娘が子供用のカート (ゴーカートよりは少しだけ本格的な感じかな?)で腕試し。
次はパパが本格的なレーシングカートにチャレンジ。
Fドリーム平塚で走行経験があるので多少は慣れていますが初めてのコースなのでドキドキしながらも、集中して周回走行を繰り返しベストタイムは49秒245。
スタッフさんによると「初めてで50秒切れれば凄いですよ」との事なのでちょっとだけ自慢しちゃいます。
その他にも色々なアトラクションを目一杯楽しみました。
偶然オートバイの耐久レースが開催されていたのでパドックまで行ってレースも堪能。
最後は併設されている Honda Coolection Hall で往年の名車を堪能しました。
開園時間から閉園時間ギリギリまで丸一日楽しめました。
体力的に自宅まで帰るのは無理だと思い急遽近場でホテルを探して一泊。
早々と寝たので体力はすっかり回復した結果、翌日帰りにディズニーランドに寄って来たのは家族だけの秘密(笑
2019/05/27
ソロキャンプで持参する道具たち
オートバイでソロキャンプに行く時に持参している道具達をまとめてみた。
忘れ物をしないための個人的な備忘録としてまとめるが、 他のキャンパーの参考になれば嬉しい。
以下のキャンプ道具は TANAX 社 MotoFizz フィールドシートバッグに収納している。
- 【本体】
-
- テント類
-
- テント
- mont-bell クロノスドーム2型 + グランドシート
- シュラフ
- mont-bell ダウンハガー 800 #3
- シュラフカバー
- NANGA シュラフカバー
- エアマット
- mont-bell ULコンフォートシステム エアパッドワイド180
- まくら
- mont-bell ULコンフォートシステム ピロー
- ハンモック
- Hummingbird ハンモックダブル + Hummingbird ストラップ + Dutch Clip + Dutch Biners
- テーブル
-
- アルミテーブル
- キャプテンスタッグアルミテーブル
- ミニテーブル
- SOTO フィールドホッパー + クッションカバー
- アルミテーブル
- Linkax アルミテーブル
- 焚き火グリル
- UNIFLAME クッカースタンド450
- キッチンテーブル
- DoD ソトメシンガーZ TB1-567
- 椅子
-
- 折りたたみ椅子
- LOGO'S 7075 ポケットスツール
- チェア
- ALITE Myfly sling
- 焚き火台類
-
- ミニ焚き火台
- コニファーコーン パイロマスター2
- 焚き火台
- Monoral ワイヤーフレーム MT-0010 + 焚き火メッシュ2 MT-0019
- グリル
- 笑'S Mr.B-6
- クッカー
-
- コッヘル
- Trangia ストームクッカー をオークションで落札したネオプレーン製のケースに収納
- ストーブ
- SOTO ストームブレイカー を マルチクッションケース巾着タイプ に収納
- 鉄板
- M.M.Factory 極厚鉄板
- カトラリセット
- UJack チタン カトラリセット
- シェラカップ
- UNIFLAME チタン製シェラカップ x 3個
- ロッキーカップ & リッド
- ベルモント チタン製ロッキーカップ + チタンリッドM
- 食料品
-
- 珈琲ドリッパ
- Muniq ステンレス製 Tetra Drip
- ペーパーフィルター
- 汎用品
- 調味料袋
-
- 珈琲豆
- アルミ缶 (小分け)
- 粉末コーヒー
- スティックパック
- ティーバッグ
- タッパー (小分け)
- 調味料
-
ナルゲン広口ボトル 30ml (小分け)
- サラダ油
- オリーブ油
- 醤油
- 酒
- 赤ワイン
- ブランデー
- 塩
- コショウ
- ツール類
-
- マルチ収納ポーチ
-
- ヘッドランプ
- Petzl ACTIK CORE
- LEDランタン
- BlackDiamond ReMoji
- LEDランタン
- GOALZERO LIGHTHOUSE マイクロランタン
- マッチ
- UCO ストームプルーフマッチ
- ナイフ
- Buck 110
- ナイフ
- Boker MAGNUM エルクハンター
- レジャーシート大
- Matador POCKET BLANKET
- レジャーシート小
- Matador MINI POCKET BLANKET
- ファイアスターター
- ガーバー BGモデル
- 火吹き棒
- ZAFIELD 火吹き棒
- 麻紐
- DAISO
- ワセリンティンダー
- 自作
- ガス器具ポーチ
-
- OD缶
- PRIMUS 110サイズ
- ランタン
- PRIMUS P-541 マイクロランタン
- ストーブ
- PRIMUS P-115 フェムトストーブ
- 予備マントル
- PRIMUS IP-8052N
- 燃料
-
- 炭
- 岩手切炭がおすすめ
- ペグケース (ペグハンマーのケースにペグと一緒に収納)
-
- ペグハンマー
- Jekeno 多機能ペグハンマー
- ペグ
- Boundless Voyage チタン鍛造ペグ
- ランタンスタンドケース
-
- ランタンスタンド
- 自作品
- チタンペグ
- Vargo チタンペグ
- 【サイドポケット(左右)】
-
- 衣類
-
- 防寒ジャケット
- TAICHI 防水インナージャケット
- 日用品
-
- 洗剤とスポンジ
- 汎用品
- ウェットティッシュ
- 汎用品
- モバイルバッテリー
- iWALK 2000mAh
- USB カイロ
- EKOOS USBカイロ
- MAXPEDITION ポーチ
-
- マルチツール
- レザーマン JUICE S2
- LED ライト
- OLIGHT S30 Ti BATON
- トーチ
- SOTO スライドガストーチ ST-480
- モンキーレンチ
- バーゴ 110mm
- EDC
-
- マルチツール
- SQUIRT PS4
- トーチ
- SOTO マイクロトーチ COMPACT ST-485
- LED ライト
- OLIGHT S10 BATON
- ミニポーチ (Boundless Voyage のチタン鍛造ペグのケースを流用)
-
- ミニスコップ
- Vargo チタン ディグディグツール
- タガネ
- 汎用品
- キャンドルランタン
- SIERRA DESIGNS キャンドルランタン (オイルランプ化)
- 着火剤
- LOGO'S 防水ファイヤーライター 小分け
- 革グローブ
- KINCO'S SUEDE COWHIDE DRIVER
- 【サイドのドリンクケース】
-
- アルコールボトル
- Trangia フューエルボトル 0.5L
- 【トップ部のゴムコード】
-
- 焚き火台
- UCO MINI FLATPACK GRILL
- ソフトクーラーバッグ
-
SEATLE SPORTS ソフトクーラー 23QT
- シューズ
- Arc'teryx アラキス
- 平ゴム
- 汎用品
- ペーパーナプキン
- DAISO
- レジャーシート
- DAISO
- 【トップ部のフラットケーブル】
-
- タープ
- さすらいタープ + DoD コンパクトタープポール
- 【トップ部にカラビナで固定】
-
- キャンティーン
- Keith チタンキャンティーン
なるべくメーカーなど一次情報にリンクしているが、Amazon で購入した中国製の品物などメーカー公式サイトが不明なモノなどについては Amazon 等外部のサイトにリンクしているがアフェリエイトではないです。
2019/05/24
The Camp & Garden AMANAYU
久しぶりのソロキャンプツーリングは山梨県の AMANAYU へ。
ここは 2018年7月にオープンしたばかりの新しいキャンプ場なのですが、
キャンプ情報メディアなどの口コミで「とても素晴らしい」と絶賛されています。
たまたま週末に予約が取れたので行って来ました。
テント、シュラフ、クッカーなど最低限必要と思われる荷物を積み込んだらいざ出発です。
なるべく荷物を減らしたのですが、それでも山積みになってしまいます。
「もっともっとコンパクト化を推進しなくては」と改めて思うんですが…今の所どうしようもないです。
キャンプ場は山梨県北杜市(詳しい場所は非公開)なので中央高速をひた走り。
途中で給油など適宜休憩しながらも自宅から3時間程度で無事到着です。
到着したら早速設営を開始します。
今回もモンベルのクロノスドームと DoD のさすらいタープの組み合わせ。
タープの下にテントを張っているのですが、この場合も「小川張り」というのだろうか…。
ここのキャンプ場は何と直火可との事なので早速焚き火を始めます。 しかも薪一束は無料というのが焚き火好きには嬉しい限りですね。
折角の直火なので Wolf & Grizzly 社の焚き火グリルを使って焚き火だけで料理してみます。
炊飯は火力調整が難しく微妙に芯が残ってしまいましたが、それでも美味しく炊けました (自画自賛)。
肉は網で直接焼くと煙臭くなるので極厚鉄板を利用して調理します。
豚バラ肉は塩胡椒で、牛カルビと牛ロースは焦がし醤油でそれぞれシンプルにいただきます。
ノンビリ食事を終わらせたらまったりタイム。
うるさく騒ぎ立てる迷惑なキャンパーがいないので素敵な時間を過ごす事ができました。
朝はキャンティーンで直接お湯を沸かして珈琲を淹れたらパンで朝食タイム。
ここの水は地下水をくみ上げているのでとても美味しく珈琲もひと味違います (プラシーボ)。
食事の後はすぐそばを流れる川まで腹ごなしのお散歩タイム。
すごく綺麗な川のせせらぎなので、暑い季節は川遊びが楽しそうですね。
撤収する時は焚き火跡を綺麗にして帰ります。
チェックインの時に渡された注意書きにも後始末の方法が簡単に載っていますが、
「来た時よりも綺麗に」をモットーに焚き火跡を綺麗にして帰途につきました。
本当に素敵なキャンプ場でした。次は家族と是非一緒に来たいです。
2019/04/18
CentOS 7 のコンソール画面でキーマップを変更する
キーボードのキーが押下されるとキーコードと呼ばれる一意の値がシステムに通知される。
キーマップはこのキーコードに対して文字を定義するためのファイルで、
システム標準のキーマップは /lib/kbd/keymaps/legacy/i386/qwerty に格納されている。
CentOS 7 のコンソール画面のキーマップ情報は /etc/vconsole.conf ファイルに格納されていて、
起動時に自動で読み込まれコンソール画面のキーマップが設定される。
$ cat /etc/vconsole.con KEYMAP="us" FONT="latarcyrheb-sun16"
例えば US 配列のキーボードで邪魔な Caps Lock を Control に変更したい場合は
Caps Lock のキーコードを調べて押下された時に Control が入力される様なキーマップを用意すれば良い。
キーマップは showkey コマンドで調査する事ができる。
showkey コマンドは画面に表示されている通り最後の入力の10秒後に終了する。
$ showkey kb mode was UNICODE [if you are trying this under X, it might not work since the X server is also reading /dev/console ] press any key (program terminates 10s acter last keypress)... keycode 58 press ここで Capl Lock キーを押下 keycode 58 release ここで Capl Lock キーを離す $結果から Caps Lock キーのキーコードは 58 なのでキーコード 58 に対して Control を入力するキーマップを作成する。 キーマップファイルは他のキーマップファイルを読み込む事ができるので、オリジナルの us.map を読み込んで Caps Lock だけを変更する。 この時、Shift + Caps Lock の場合は Caps Lock としてみる。
キーマップファイルは gzip 形式で圧縮する必要があるので圧縮し、所定のディレクトリに格納する。
# cat << EOF | gzip -c > /lib/kbd/keymaps/legacy/i386/qwerty/us-nocaps.map.gz include "us.map" keycode 58 = Control shift keycode 58 = Caps_Lock EOF
キーマップファイルの準備ができたら loadkeys コマンドでキーマップを読み込み挙動を確認する。
# loadkeys /lib/kbd/keymaps/legacy/i386/qwerty/us-nocaps.map.gz Loading /lib/kbd/keymaps/legacy/i386/qwerty/us-nocaps.map.gzCaps Lock キーが Control に、Shift + Caps Lock キーが Caps Lock になる事が確認できたら、 起動時にキーマップが読み込まれる様に /etc/vconsole.conf ファイルを編集する。
# cp /etc/vconsole.conf /etc/vconsole.conf.orig # sed '/KEYMAP/ s/us/us-nocaps/' /etc/vconsole.conf.orig > /etc/vconsole.confこれで再起動しても Caps Lock は Control となる。
2019/04/12
風遊心リゾート
Facebook で知り合った方が運営されている西伊豆の隠れ家的キャンプ場に行ってきました。
いつものオートキャンプではなく車から若干離れているので設営・撤収時は少し大変ですが
(しかも高低差があるのでつづら折りの細道を上る必要あり)、
その大変さを補ってあまりある素敵な場所でした。
予め駐車場から遠いと聞いていたので今回は久々のタフドームの出番。
翌日は雨の予報だったので降雨に備えて久々に小川張りにて設営完了です。
直火が可能で焚き火台兼用のカマドが設置されていたので盛大に焚き火が楽しめました。
今までの家族キャンプの中で一番ワイルドな環境でしたが娘も凄く楽しんだ様です。
キャンプ場の奧には綺麗な沢が流れていて野趣あふれる風情です。
川沿いには鹿と思われる動物の骨が散乱していました。
西伊豆なので家から一泊で行くにはちょっとハードですが、その分楽しみも一入です。
写真はありませんが手作りの露天風呂も凄く良い感じなので是非また行きたいキャンプ場です。
2019/03/30
柿山田オートキャンプガーデン
娘がダブルダッチのイベントなどで忙しかったので、久々に家族キャンプ。
まだまだ寒い時期が続くので冬キャンプと言えば…の千葉に行ってきました。
そろそろ暖かくなってきたとは言え、夜はまだまだ寒い日が続いているためなのか、
週末なのにとても空いていて静かで良いロケーションでした。
電源サイトだったので今回もホットカーペットを持ち込んでお座敷スタイル。
寒い時期は前室でコタツ状態にしてぬくぬく出来るのが嬉しいですね
薪で焚く野趣溢れる手作りの露天風呂に入った後はノンビリと食事タイム。
豚バラで巻いたアスパラガス、地場の野菜、そして大正義の肉などをワイルドに調理。
この時期薪ストーブを持参する関係で焚き火台を持ち歩かなくなってしまったので、
家族キャンプでも UCO のフラットパックポータブルグリルが大活躍でした。
食事の後はコニファーコーンのパイロマスターでオトナの火遊びタイム。
流石二次燃焼はよく燃えます。気持ちが良い
翌日は追加料金で夕方18時までの延長利用。
近所の道の駅に食材を買いにいってノンビリと昼食を食べた後、
ゆっくりと撤収作業をする事ができました。
そのまま帰っても高速道路は渋滞するので、
さらに温泉にまで浸かって日付が変わる頃にノンビリ帰宅しました。
状況がゆるせば、こういうゆったりキャンプも良いですね。
2019/03/02
男子二人キャンプ(またかよ?)
例によって友人と男子二人キャンプ。
そろそろこのネタも飽きてきた感じか…
今回は房総半島最南端の白浜フラワーパークに行ってきました。
去年の台風で壊滅的な打撃を被ったと聞いていましたが営業再開した様なので早速行って来ましたよ。
翌日雨の予報だったので今回も軟弱に車で薪ストーブ持ちこみ。
一日目だけなら暖かかったのでバイクで来ても良いかな?と思ったんですがね
ここのキャンプ場はなんと薪使い放題!
ただし自分で薪割する必要はありますが…
という事で地味に薪割タイム(これが何も考えずに作業できるので意外と楽しい)
それにしてもキンドリングクラッカーでの薪割りは楽で良いですね。
薪をセットして上からハンマーで叩くだけで簡単に割れる割れる! 素晴らしい!
ついでに Hot Candy Heater のデビューもしてきました。
巷では中々入手が困難と話題になっているアルコールストーブ専用のヒーターです。
外で使うには火力が不足気味ですがテントの中を簡単に温めるには十分でした。
例によって食事は肉ニクにく…でも、今回は海沿いなのでハマグリも追加。 炭火でじっくり焼いたハマグリの何と美味しい事か…
そしてオッサン二人の夜は静かに更けていくのであった…
ちなみに翌日は朝から結構な雨でした。
友人にとっては初めての雨キャンプとなりましたが何とか無事に撤収できて良かったですね
2019/02/16
男子二人キャンプ
例によって友人と男子二人キャンプ。 今回は冬キャンプの定番千葉に行って来ました。
オフシーズンだからかとても空いていたので広めのサイトを使わせて頂きました。
今回は寒い時期なのでバイクではなく車で。
とは言っても装備はバイク用なので荷物に余裕があり薪ストーブまで持ち込みです。
男二人まったりしていてもする事がなく、すぐに食事に準備に(食べる事ばかり)
UCO のフラットパックポータブルグリルで炭火を熾し、
半分は極厚鉄板を乗せて牛肉をグリル、残りの半分は網を利用して豚バラを直火で調理。
網焼きした豚バラ肉は余分な脂が落ちてとっても美味しいですね。
そして千葉の夜は静かにふけていくのであった…
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 $oldslack でチャンネルではなくダイレクトメッセージを送信する場合は channel の値を適切に変更する。
web を検索すると `channel: @名前` とすれば良いとの記事を多く見かけるが、少なくとも最近の slack ではエラーとなってしまう。
その場合、slack の web 画面の左側に表示されている `ダイレクトメッセージ` をクリックした時に遷移するページの URL の最後の部分 (https://XXX.slack.com/messages/YYYYY/ の YYYYY の部分) を指定するとダイレクトメッセージが送信できる。
2019/01/02
本年度初キャンプ
本年度の初キャンプとして我が家では定番となった有野実苑に行って来ました。
今回は…なんと!薪ストーブのお披露目となりました。
冬の時期に有野実苑に来る度に薪ストーブをレンタルして温まっていたのですが、
ついに自前の薪ストーブをゲットしてしまいました。
購入するにあたって機種などを色々と調べて悩んだのですが、
手入れの簡単なステンレス製で安心の日本製という事で、
tent-mark DESIGNS のウッドストーブを選びました。
純正オプションのウォータータンクがとても便利で、
いつでもお湯が使えるのは特に冬の時期には素晴らしいです。
Coleman の T.P.Crest の前室部分にセンゴクアラジンのカセットガスストーブを設置して、
クッションマットを敷いて電気毛布でコタツ状態にした事でとても素敵な空間が出来ました。
この時期のキャンプは初めてなので寒さにおびえていたのですが、
薪ストーブ + コタツのおかげで快適に過ごす事ができました。
キャンプ場の入口付近で地元のイチゴを買って来ておやつにチョコレートフォンデュを食べたのですが、 テーブルコンロとして OPTIMUS の 8R が大活躍してくれました。
温暖な千葉とは言えやはりこの時期は寒い様で、朝起きるとケトルの中の水が凍っていました。
水が凍る様な寒さの中でのキャンプは初めてなのですが何とかなるモンですね。