web-dev-qa-db-ja.com

コンピューターの稼働時間を追跡する方法

Linuxデスクトップを持っています。 24時間年中無休でオンのままにしません。コンピューターの電源が毎日どのくらいの時間オンになっているかに関する統計を収集したいと思います。例:

2012-08-21: 7:52
2012-08-22: 8:43
2012-08-23: 7:36

コンピューターの電源が入っていない場合、記録は必要ありません。

1
aisbaa

私はstackoverflowで同様の質問を見つけました https://stackoverflow.com/questions/7949​​0/linux-uptime-history 。最高のアップタイムは私が欲しいもののようです、助けてくれてありがとう。

http://podgorny.cz/moin/Uptimed

0
aisbaa

稼働時間を実行してファイルにダンプするスクリプトを作成できます。

uptime >> uptime.log

その後、cronジョブを設定します。 cronジョブの作成方法の詳細を知るには: cronジョブの作成

または、オンラインサービスにサインアップして、それを行うことができます: 稼働時間プロジェクト

3
aliasgar

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)
2
sepehr

これにより、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))'
2
Kjetil S.

この情報を抽出できる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
1
RedGrittyBrick

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

ロケールに応じて、日付形式が変わる可能性があります。

よろしく、

0
Rfraile