再起動後数時間以内にシステムが日付を忘れてしまうのはなぜですか?

再起動後数時間以内にシステムが日付を忘れてしまうのはなぜですか?

毎日午後12時10分に終了bashスクリプトを実行するcronコマンドがあります。

10 0 * * * /bin/bash /var/www/scripts/special-reboot.sh

スクリプトは非常に基本的で、実行する作業はnginxを終了し、MySQLのMEMORYテーブルから通常のテーブルにデータを移動するだけです。その後実行されます。sudo /sbin/shutdown -r now 'Daily restart.'

1、2ヶ月くらいはまともに戻っていましたが、昨夜はとても奇妙なことが起こりましたが、その理由を知る必要があります。

重要なプロセスが15分ごとに実行されることを確認するPythonロギングスクリプトがあります。昨夜の再起動後、ログは次のようになります(日付と時刻を参照)。

[2019-02-12 23:45] 
...
[2019-02-13 00:00]
...
[2016-11-04 03:30]
...
[2016-11-04 03:45]
...
[2016-11-04 04:00]
...
[2016-11-04 04:15]
...
[2016-11-04 04:30]
...
[2016-11-04 04:45]
...
[2016-11-04 05:00]
...
[2016-11-04 05:15]
...
[2016-11-04 05:30]
...
[2019-02-13 02:30]
...
[2019-02-13 02:45]
...
[2019-02-13 03:00]

ご覧のとおり、突然別の日時から約2時間カウントが開始され、再び正常に戻ります。

最も恐ろしいのは、影響を受けるのはPythonスクリプトだけではないということです。電気ショックを追跡する別のCスクリプトには、この期間に関するデータがありません。

何が原因なのかわかりません。私のロギングスクリプトのおかげで、この期間中にすべての重要なプログラムが完全に実行されていたことがわかります。私の考えでは、これがプログラムの問題ではなく、システムの問題である可能性が最も高いです。

ベストアンサー1

Raspberry Piにはリアルタイムクロック(RTC)はありません。

ラズベリーパイは超低コストのコンピュータとして設計されているので、私たちがコンピュータでよく知っていた多くの機能は省略されました。たとえば、ラップトップとコンピュータには、電源が切れたときやバッテリーが取り外された場合でも時間を維持する小型コイン型電池駆動「リアルタイムクロック」(RTC)モジュールがあります。コストを下げ、サイズを小さく保つために、RTCはRaspberry Piには含まれていません。代わりに、PiはイーサネットまたはWiFiを介してインターネットに接続し、グローバルNTP(Network Time Protocol)サーバーで時間を自動的に更新するように設計されています。

ラズベリーパイは約6ドルで購入できます。それ以外の場合、NTPは唯一のオプションです。

おすすめ記事