我想使用'last -t',然后按照YYYYMMDDHHMMSS格式将当前日期/时间传递给它。我知道如何获得当前日期/时间的唯一方法是通过“日期”,但它将以错误的格式传递回来。last -t command HELP
last-t还使用时间范围来显示自从时间框架以来谁已登录,我将如何从当前时间减去1分钟,当我将其转换为正确的格式时,该如何执行。
终于有一个命令显示那些退出登录?
我想使用'last -t',然后按照YYYYMMDDHHMMSS格式将当前日期/时间传递给它。我知道如何获得当前日期/时间的唯一方法是通过“日期”,但它将以错误的格式传递回来。last -t command HELP
last-t还使用时间范围来显示自从时间框架以来谁已登录,我将如何从当前时间减去1分钟,当我将其转换为正确的格式时,该如何执行。
终于有一个命令显示那些退出登录?
看看date
联机帮助页。您可以输出各种格式的日期和时间,包括您想要的格式。请记住引用这个论点。
对于减去1分钟,我个人使用Python和datetime
模块,很容易对它进行时间计算。
不知道注销部分。
这是需要shell脚本来执行此操作的类。它不是真正的功能=/ – 2011-03-30 18:14:56
1 NOW=`date`
2 MINAGO=$((-1 + `date -d "$NOW" "+%Y%m%d%H:%M:%S" | cut -d: -f2 `))
3 MINAGO=`printf "%02i" $MINAGO`
4 MINAGO=`date -d "$NOW" "+%Y%m%d%H:%M:%S"| sed s/:.*:/$MINAGO/`
5 last -t $MINAGO
您必须更加具体地说明退出者的含义,因为最后显示的是您已注销的用户以及他们何时执行了注销。如果他们还没有登录,他们就出局了。你还需要知道什么?不管怎么说,这是可以寻找在/ etc/shadow的真实账户和谁仍然记录在该列表中删除用户 例如:
getent shadow |sort -t: -k2,2 | awk -F: '($2 !="*") && ($2 !="!") { print $1 }'
记住,只有root用户可以读取/ etc/shadow中
从头开始;
last -t $(
date -d @$((-60 + `date +%s`)) +%Y%m%d%H%M%S
)
| grep still
e.g
$ last -t $(date -d @$((-60 + `date +%s`)) +%Y%m%d%H%M%S) | grep still
* pts/4 * Sat Sep 7 02:20 still logged in
* pts/44 * Fri Sep 6 19:08 still logged in
* pts/8 * Fri Sep 6 11:26 still logged in
* pts/32 * Fri Sep 6 09:37 still logged in
* pts/60 * Wed Sep 4 08:06 still logged in
* pts/34 * Tue Sep 3 23:26 still logged in
* pts/5 * Tue Sep 3 12:38 still logged in
* pts/37 * Mon Sep 2 10:59 still logged in
* pts/46 * Sun Sep 1 21:29 still logged in
第2步可能会变得有趣,如果它碰巧是17:00(或任何其他时间'%M'给出0输出)... – twalberg 2013-09-05 13:39:24
什么OS是你吗?在TTY的BSD'last -t'过滤器中,你似乎认为你有一个可以按时间过滤的'last'。 – 2011-03-30 18:07:33
@Nick:快速谷歌发现这个:http://unixhelp.ed.ac.uk/CGI/man-cgi?last – 2011-03-30 18:09:45
即时通讯测试它在Ubuntu最新版本。最后-t在我的手册页上请求YYYYMMDDHHMMSS格式。 – 2011-03-30 18:12:15