时间大盗:用ac -d查看用户每天在线时长,居然高于24小时

ac是linux下很有意思的命令,可以统计用户的在线时长

按man ac的解释

AC(1)                                        General Commands Manual                                       AC(1)

NAME
       ac -  print statistics about users' connect time

SYNOPSIS
       ac     [ -d | --daily-totals ] [ -y | --print-year ]
              [ -p | --individual-totals ] [ people ]
              [ -f | --file filename ] [ -a | --all-days ]
              [ --complain ] [ --reboots ] [ --supplants ]
              [ --timewarps ] [ --compatibility ]
              [ --tw-leniency num ] [ --tw-suspicious num ]
              [ -z | --print-zeros ] [ --debug ]
              [ -V | --version ] [ -h | --help ]

DESCRIPTION
       ac  prints  out a report of connect time (in hours) based on the logins/logouts in the current wtmp file.
       A total is also printed out.

       The accounting file wtmp is maintained by init(8) and login(1).  Neither ac nor login creates the wtmp if
       it doesn't exist, no accounting is done.  To begin accounting, create the file with a length of zero.

       NOTE:  The wtmp file can get really big, really fast.  You might want to trim it every once and a while.

       GNU ac works nearly the same UNIX ac, though it's a little smarter in several ways.  You should therefore
       expect differences in the output of GNU ac and the output of ac's on other systems.  Use the command info
       accounting to get additional information.

OPTIONS
       -d, --daily-totals
              Print totals for each day rather than just one big total at the end.  The output looks like this:
                      Jul  3  total     1.17
                      Jul  4  total     2.10
                      Jul  5  total     8.23
                      Jul  6  total     2.10
                      Jul  7  total     0.30
       -p, --individual-totals
              Print  time  totals  for  each user in addition to the usual everything-lumped-into-one value.  It
              looks like:
                      bob       8.06
                      goff      0.60
                      maley     7.37
                      root      0.12
                      total    16.15
       people Print out the sum total of the connect time used by all of the users  included  in  people.   Note
              that people is a space separated list of valid user names; wildcards are not allowed.
       -f, --file filename
              Read from the file filename instead of the system's wtmp file.
       --complain
              When  the  wtmp file has a problem (a time-warp, missing record, or whatever), print out an appro‐
              priate error.
       --reboots
              Reboot records are NOT written at the time of a reboot, but when the system  restarts;  therefore,
              it  is  impossible  to know exactly when the reboot occurred.  Users may have been logged into the
              system at the time of the reboot, and many ac's automatically count the time between the login and
              the  reboot  record  against  the user (even though all of that time shouldn't be, perhaps, if the
              system is down for a long time, for instance).  If you want to count this time, include the  flag.
              *For vanilla ac compatibility, include this flag.*
       --supplants
              Sometimes,  a logout record is not written for a specific terminal, so the time that the last user
              accrued cannot be calculated.  If you want to include the time from the user's login to  the  next
              login  on the terminal (though probably incorrect), include this you want to include the time from
              the user's login to the next login on the terminal (though probably incorrect), include this flag.
              *For vanilla ac compatibility, include this flag.*
       --timewarps
              Sometimes,  entries  in  a  wtmp file will suddenly jump back into the past without a clock change
              record occurring.  It is impossible to know how long a user was logged in when  this  occurs.   If
              you  want  to  count  the  time between the login and the time warp against the user, include this
              flag.  *For vanilla ac compatibility, include this flag.*
       --compatibility
              This is shorthand for typing out the three above options.
       -a, --all-days
              If we're printing daily totals, print a record for every day instead of skipping intervening  days
              where  there  is no login activity.  Without this flag, time accrued during those intervening days
              gets listed under the next day where there is login activity.
       --tw-leniency num
              Set the time warp leniency to num seconds.  Records in wtmp files might be slightly out  of  order
              (most  notably  when  two  logins  occur  within a one-second period - the second one gets written
              first).  By default, this value is set to 60.  If the program notices this problem,  time  is  not
              assigned to users unless the --timewarps flag is used.
       --tw-suspicious num
              Set  the  time  warp suspicious value to num seconds.  If two records in the wtmp file are farther
              than this number of seconds apart, there is a problem with the wtmp file (or your  machine  hasn't
              been  used  in a year).  If the program notices this problem, time is not assigned to users unless
              the --timewarps flag is used.
       -y, --print-year
              Print year when displaying dates.
       -z, --print-zeros
              If a total for any category (save the grand total) is zero, print it.  The default is to  suppress
              printing.
       --debug
              Print verbose internal information.
       -V, --version
              Print the version number of ac to standard output and quit.
       -h, --help
              Prints the usage string and default locations of system files to standard output and exits.
FILES
       wtmp
              The system wide login record file. See wtmp(5) for further details.
AUTHOR
       The  GNU  accounting utilities were written by Noel Cragg <noel@gnu.ai.mit.edu>. The man page was adapted
       from the accounting texinfo page by Susan Kleinmann <sgk@sgk.tiac.net>.
SEE ALSO
       login(1), wtmp(5), init(8), sa(8)

ac  prints  out a report of connect time (in hours) based on the logins/logouts in the current wtmp file.

他的时间都是按小时计算的

常用的操作有

(1)-p:显示每个用户的连接时间
(2)-d:显示每天的连接时间
(3)-y:显示年份,可-d配合使用

还可在后面接用户名,比如

ac -d wa**ing

就是按天打印wa**ing的在线时长

但是我实际用的结果是

root@zhanglei:/# ac -d wa**ing
Jan  2	total        5.15
Jan  3	total        1.79
Jan  4	total       13.59
Jan  5	total       17.14
Jan  6	total        6.04
Jan  7	total        3.21
Jan 12	total        0.04
Jan 13	total        0.13
Jan 14	total        5.46
Jan 18	total        7.21
Jan 19	total       12.24
Jan 21	total        0.00
Jan 22	total       10.21
Jan 23	total       24.00
Jan 24	total       24.61
Jan 25	total       24.37
Jan 26	total       29.11
Jan 27	total       33.44
Today	total        3.14

最后几行居然大于24

众所周知,一天24小时。。。难道wa**ing就是传说中的时间大盗??

 

在ac -d 不加用户名的时候,我发现

很多都大于了24小时

Jan 23	total       43.46
Jan 24	total       79.01
Jan 25	total      186.64
Jan 26	total      146.27
Jan 27	total      145.32
Today	total       15.76

猜测大于24小时的原因是,具体的时间,是按照用户在线进程统计的

比如一个用户同时有三个ssh通信连接服务器,那ac统计的时间是3*在线时间

 

从来就没有什么时间大盗,每个人一天都是24小时,一定要珍惜时间呀!!

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值