windows でも時刻合わせがしたい!
TRANSCRIPT
Windows でも時刻合わせがしたい!
@tsuda_ahr
合同勉強会 in 大都会岡山
2016 Winter ver.
2016/12/17
テーマ
• Windows で時刻合わせをしたい。
要求: Windows の時刻を、時刻マスターと合わせたい。
方法: net time コマンドを使う。
• 書式net time ¥¥時刻サーバー名 /set y
• これをタスクスケジューラーで定期的に叩く。
いや時刻マスターは Windows じゃないんですが…
• NTP サーバーと同期したいんです。
方法2: 桜時計を使う。
桜時計とは ?
• Win 95 の頃からにある NTP クライアント。 (サーバーにもなるよ)
• Win 10 でも動く。 (たぶん)
• 常駐して一定周期で時刻をあわせてくれる機能もある。
解決!
いや、でも…
• フリーソフト使うのはなあ…いろいろなんか気持ち悪いじゃん ? (何が ?)
• Windows 標準のソフトでなんとかならないの ? (何、そのこだわり ?)
• ほら、w32tm とか Windows time サービスとかなかったっけ ?
w32tm ? ああ、あれ ?
• やめといたほうがいいです。(何
いや、実際。
• 先のいずれかで解決したほうが無難です。
• それで問題にならないのであれば…
「問題にならないのであれば」って ?
• たとえば、こんな会話が可能な場合です。
ログのこの部分、1秒くらい時刻が逆転しているところがあるんだけど、なんでだろう ?
あ、そのタイミングで、時刻合わせの処理を自動実行しているからですね。
そうか。
「そうか」 じゃねーだろ (汗
• しかし、この程度の精度で十分なケースがほとんどです (汗
どうしても、w32tm を使いたい。
• でも、あのコマンド。例えば手動で時刻を合わせる /resync コマンドは…
今すぐ同期するようなことを書かれていますが
• 同期してくれないことがあります。
なぜ ?
• 深い理由があります。
その理由とは ?
• 公開されていません(汗 #たぶん
ちょっと嘘でした (汗
• 正確には、公開されていないのは w32tm の同期ロジック。
• NTP 的には正しい動作になるように組まれてはいる。(と思われる)
• なにをやっているのがよくわからない (=同期に失敗したときの理由がわからない) という意味では、当たらずしも遠からず(汗
理由がわからない ?
• 失敗したのは表示されるが、失敗した理由は表示されない。
NTP的に正しい動作って ?
• 勉強しましょう(汗
軽くさわりだけ。
• 要するに時刻サーバーから参照した時刻が信頼できるものでなくてはいけません。• 時刻サーバーの階層 (Strutam) が上位か ?
• 時刻サーバーは、さらに上位の時刻サーバーと同期がとれているか ?
• 時刻は揺らいでいないか ? (分散/Dispersion)
• それ以外にも様々な課題が。• クライアントモードか、シンメトリックモードか。
• Slew なのか Step なのか。
• Slew と Step の動作変更の敷居時刻差は何秒なのか ?
• Windows time サービスは動いているか ? (特にWin7以降)
w32tm のトラブルシューティング例
• http://www.atmarkit.co.jp/ait/articles/1301/24/news105.html
めんどうくさい (汗
• その上、いくら頑張っても、多分思ったように動くことはない。
いっそ
• 時刻同期なんて、せずに済むならそのほうがいいです(汗
まとめます。
伝えたかったことは以下です。
• 安易な気持ちで「時刻をあわせよう」とか考えないでください。
• 特にクライアントから「時刻も自動であわせてよ」と言われたら「はっはっは、ご冗談を。」とか言って回避してください。安請け合いするとひどい目にあいます。
• 時刻合わせは、やってもやってもザルの目が細かくなるだけで完全に一致しないし、意図したとおりの結果にはなりません。(言い過ぎ)
• 自動で合わせようとするな。諦めが肝心 (汗
あと
• Windows って時刻同期ができなくなると、あるとき、いきなり 1分 時刻がずれることがあるから気をつけてね!
KB232488 問題
こちらからは以上です。
• ご清聴ありがとうございました。