linuxで時間を合わせる方法
時間をセットせずに端末を使い続けていると、気がついたらシステムの時間がズレてしまっていることがあります。
原因としては以下のことが考えられるようです。
- Linux OS では、タイマー割り込みをカウントすることで時刻を管理している。
- 2.4 カーネルまではタイマー割り込みの間隔は 100 Hzだったが、2.6 カーネルから 1000 Hz にアップしている。
- さらに、SMP カーネルでは 1 秒に 1000×(CPU数+1)回のタイマー割り込みが発生する。
- エミュレーションされた仮想マシンでは、こんな頻度の割り込みは処理できない。そのため、時刻が大幅に遅れる。
- 実際のハードウェアでもタイマー割り込みの取りこぼしは発生するが、Linux 2.6 にはこれを補正するコードが含まれている。残念なことにこのコードはいくつかの場面において、まやかしの補正を引き起こす。このため、時刻が実際よりも進んでしまうことがある。
システムの時間がズレていると、以下のようなトラブル(問題)に遭遇することがあります。
- ログを確認しようとしても正確な情報が得られません。
- メールの送受信でトラブルが発生することがあります。
- cronで決まった時間に処理をさせている場合、正常に動作しないことがあります。
システムの時計を正常な時間に設定しましょう。
まずは現在のシステム上の時間を確認
[root@localhost ~]# date
2012年 7月 3日 火曜日 01:29:47 JST
2012年 7月 3日 火曜日 01:29:47 JST
現在の正確な時間は[2012年 7月 3日 火曜日 01:34:47]なので、その時間にシステムの時間を設定します。
[root@localhost ~]# date -s “07/03 01:34 2012”
2012年 7月 3日 火曜日 01:34:00 JST
2012年 7月 3日 火曜日 01:34:00 JST
システムの時間が正常な時間になりました。