再起動日を記録する方法

再起動日を記録する方法

私はLinuxを初めて使用し、正しい方法でタスクを実行しても、常に安全ではありません。時々、再起動を使用するRaspbianシステム(ソフトウェアではなく問題の場合)があり、再起動するたびにログインが必要になる場合があります。私の考えは次のとおりです。 crontabの操作は次のとおりです。

@reboot date >> /var/log/reboots

効果があるもっとエレガントなものがありますか?解決策が許容可能であれば、日付ファイルシステムがいっぱいになるのを防ぐためにログファイルを「ローリング」する方法はありますか?)?

答え1

Debian では、再起動が記録されます。 ~からman last:

Last searches back through the file /var/log/wtmp (or the  file  desig-
nated  by  the -f flag) and displays a list of all users logged in (and
out) since that file was created.
...
The pseudo user reboot logs in each time the system is rebooted.   Thus
last  reboot will show a log of all reboots since the log file was cre-
ated.

このファイルは既定でログのローテーションに既に存在する必要があります/var/log/wtmp(参考資料を参照/etc/logrotate.conf)。

次のオプションを使用して古いログファイルを使用できます-f

last reboot -f /var/log/wtmp.1

答え2

crontabエントリは正常ですがcron有効にする必要があります。私が好むのは、/etc/rc.localマルチユーザーランレベルの終わりに達したときに呼び出される行に似た行を置くことです。

シングルユーザーモードで起動した場合(望んでいなくても)、どちらも呼び出されないことがあります。これが十分に正確でない場合は、別のパスを選択して最新のブートメッセージを/var/log/syslog分析し、この方法で記録した最後のメッセージ以降のファイルにすべての日付タイムスタンプを追加することをお勧めします。cronまたはで実行できますが、再起動の間に正しい保存を取得すると仮定しますrc.local/var/log/syslog

再起動時に記録される30文字の1文字については心配する必要はありません。これは何よりもディスクを埋めません。これが本当に問題だと思ったら、4バイト(32ビット)をバイナリとして使ってファイルに書き込むだけです。精度を下げて再起動の間にいくつかのデルタを保存すると、これをさらに減らすことができます。

関連情報