Linuxデスクトップを持っています。 24時間年中無休でオンのままにしません。コンピューターの電源が毎日どのくらいの時間オンになっているかに関する統計を収集したいと思います。例:
2012-08-21: 7:52
2012-08-22: 8:43
2012-08-23: 7:36
コンピューターの電源が入っていない場合、記録は必要ありません。
私はstackoverflowで同様の質問を見つけました https://stackoverflow.com/questions/79490/linux-uptime-history 。最高のアップタイムは私が欲しいもののようです、助けてくれてありがとう。
稼働時間を実行してファイルにダンプするスクリプトを作成できます。
uptime >> uptime.log
その後、cronジョブを設定します。 cronジョブの作成方法の詳細を知るには: cronジョブの作成
または、オンラインサービスにサインアップして、それを行うことができます: 稼働時間プロジェクト
last
のマニュアルページによると:
疑似ユーザーの再起動は、システムが再起動されるたびにログインします。したがって、最後の再起動では、ログファイルが作成されてからのすべての再起動のログが表示されます。
したがって、#last reboot
コマンドの最後の列には、稼働時間の履歴が表示されます。
#last reboot
reboot system boot **************** Sat Sep 21 03:31 - 08:27 (1+04:56)
reboot system boot **************** Wed Aug 7 07:08 - 08:27 (46+01:19)
これにより、5分ごとに「稼働時間」の出力がログに記録されます。この出力には、現在ログオンしているユーザーの数と、過去1、5、および15分間のコンピューターの平均負荷も含まれます。
Sudo bash #root
mkdir /var/log/uptime
crontab -e
この行を追加します:
*/5 * * * * echo `date +\%Y\%m\%d;uptime` >> /var/log/uptime/uptime.log 2>&1
そして、ログを毎週のファイルに分割+ gzipするには:
cat <<'EOF'. > /etc/logrotate.d/uptime
/var/log/uptime/uptime.log {
weekly
dateext
rotate 99999
compress
}
EOF
次に、しばらくしてから、次のように毎日の稼働時間を表示します。
uplog() { (cd /var/log/uptime/;zcat uptime.log*gz;cat uptime.log) }
uplog|cut -c1-8|uniq -c|Perl -aple'$_.=" ".("=" x ($F[0]/5))'
番号288(12 * 24)は、コンピューターが1日中稼働していたことを意味します(ただし、5分未満の再起動はこの方法では検出されない場合があります)。
または、次のように毎月同様に:
uplog|cut -c1-6|uniq -c|Perl -aple'$_.=" ".("=" x ($F[0]/150))'
この情報を抽出できるsyslog(/ var/log/messages *)には日付スタンプ付きのエントリがあります。
/etc/rc0.dにKエントリを追加して、たとえばlogger
を実行し、シャットダウン時に特定のsyslogレコードを追加することもできます。 http://www.debian-administration.org/articles/212 または使用しているLinuxディストリビューションの同等のものを参照してください
$ vim /etc/init.d/uptime
$ cat /etc/init.d/uptime
# chkconfig: 0 99 1
# description: Record uptime at shutdown.
start() {
uptime >> /var/log/uptime 2>&1
}
case "$1" in
start)
start
;;
*)
echo Usage: $0 start
;;
esac
$ chmod +x /etc/init.d/uptime
$ chkconfig --add uptime
$ chkconfig --list uptime
uptime 0:on 1:off 2:off 3:off 4:off 5:off 6:off
$ ls /etc/rc*d/*uptime*
/etc/rc0.d/S99uptime /etc/rc3.d/K01uptime /etc/rc6.d/K01uptime
/etc/rc1.d/K01uptime /etc/rc4.d/K01uptime
/etc/rc2.d/K01uptime /etc/rc5.d/K01uptime
$ /etc/rc0.d/S99uptime start
$ cat /var/log/uptime
13:15:28 up 135 days, 12:06, 1 user, load average: 0.07, 0.04, 0.01
Tuptimeは、「tuptime -e」を実行するときに、次のように実行できます。
# tuptime -e
Startup: 1 at 08:55:01 AM 08/04/2015
Uptime: 24 seconds
Shutdown: OK at 08:55:25 AM 08/04/2015
Downtime: 5 seconds
Startup: 2 at 08:55:31 AM 08/04/2015
Uptime: 20 seconds
Shutdown: OK at 08:55:51 AM 08/04/2015
ロケールに応じて、日付形式が変わる可能性があります。
よろしく、