私が問題解決をする際に、仮説を記録する際の判断を形式化します。
手順
詳しくは下記にまとめてあります。
暗黙知を書き出す
前提として問題発生時点で私は logrotate についてさほど詳しくありません。
logrotate を使った logrotation の初回実行時にローテーションしていなかった。
原因を調査します。
- 脳内だけ(メモをとらない)で解決できるものではないと直感で判断
- Markdown に仮説を書き出す
- logrotate の仕様理解不足
- logrotate の設定ミス
- 「logrotate の仕様理解不足」の説から検証
- man command と linuxcommand.org の logrotate の説明 を読むがここには正解が無さそうだ
- ログローテーションの実行時間はどこで管理されているか調べるために「logrotate 時間」で検索
- “logrotate” ローテーションの実行タイミング @LCD -Linux Command Dictionary-|Replog!株式会社レップワンスタッフによるブログです がヒット
- logrotation は crond によって実行されていて、
/var/lib/logrotate/status
に保存されている前回実行時間を元にローテンションしていることが分かった
こんな感じの内容
"/var/log/cron.log" 2017-6-12-6:0:0 "/var/log/mail.log" 2017-6-11-6:34:27 # 略
- 初日の挙動を調べるために「logrotate 初日」で検索
- いつもハマった話ばかりだけれども、今日もlogrotateで - kgbu’s diary がヒット
- 初回は
/var/lib/logrotate.status
の記録がないためローテートされない、ということがわかった - オフィシャルの情報で裏取りする
- logrotate の GitHubをみる。
- 仕様として明示されている挙動では無さそうだ。Issue があるか確認する
- 見当たらない
- 実際、他の人はどうやって運用しているのだろう?英語圏の情報を調べたい
- 「logrotate first」で検索
- logrotate not rotating the logs - Server Fault を確認
- comment 497671 - logrotate not rotating the logs - Server Fault
You can avoid this problem two ways;
run sudo logrotate -f /etc/logrotate.d/
This will scribble the date into the status file withOUT rotating the logsEdit /var/lib/logrotate/status and add the line manually:
“/var/log/my_special.log” 2013-4-8
setting it to today’s or a prior date. Next run should cause it to run.
なるほど。
形式化可能な事例を抽出する
Markdown に仮説を書き出す
の部分を抽出します。
抽出した事例を抽象化する
脳内だけで理解・解決できそうな問題では無さそうなとき、
メモに仮説を書き出した上で一つ一つを調査・検証する。
これにより
- どこまで調べたか曖昧にならない
- 人に相談する時にメモした内容をみせることで、どこまで調査済みかすぐに説明できる
- 書いている過程で頭のなかで検証済み・未検証・その他の可能性について整理される
などの効果がある。
背景
取り組むべき課題が発生した際に「ほぼこれ」という明確な答えがない状態で
対象に取り組む必要がある。
問題
どのくらいの仮説を検証することで問題が解決できるかわからないため、
仮説が多くなった場合に脳内だけで正しい記憶を保つことが難しい
要因
- 作業記憶には限りがある
- 作業記憶には個人差がある
解法
仮説を書き出して1つずつ検証する
行動
- 仮説を書き出す
- 優先度をつける
- 一つずつ調査・検証する
結果
調査に一定量のボリュームがあった場合にはどこまで調査済みか、などを
はっきり把握した状態で解決まで取り組むことができる。
また、相談が必要になった場合も楽に相談できる。
抽象化した形式知を学習可能にする
- 仮説・検証が必要な課題に対してメモを残しながら取り組むワークフローを決める
- 慣習化するまでは目印となりそうなところにそのワークフローをメモを貼る
- PC内のメモでも物理メモでも目立っていればよい
まとめ
仮説を元にした調査が必要になるタスクに取り組む場合、
気づいたらブラウザのタブが大量に開き、どのページを確認して、
どんな仮説を検証し、どんな仮説が未検証なのかごちゃごちゃになったことは
ありませんか?
いざ相談しようとしたときに、どんな仮説をもとにどんな内容をすでに調査済みなのか
うまく説明できなくて困ったことはありませんか?
そんな経験がある人には今回の方法がマッチするかもしれません。 とくに作業記憶に自信がない人は。