我想使用'last -t'然后以YYYYMMDDHHMMSS格式传递当前日期/时间,就像它要求的那样。我知道如何获取当前日期/时间的唯一方法是通过“日期”,但它会以错误的格式将其传回去。
也是last -t使用时间帧来显示自时间框架以来登录的用户,当我将其设置为正确的格式时,我将如何从当前时间减去1分钟。
最后是否有一个命令显示那些已经退出的人?
答案 0 :(得分:0)
查看date
联机帮助页。您可以输出各种格式的日期和时间,包括您想要的格式。记得引用这个论点。
对于减去1分钟,我个人使用Python和datetime
模块,用它来计算时间很容易。
不知道退出部分。
答案 1 :(得分:0)
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