last -t命令帮助

时间:2011-03-30 18:04:33

标签: bash shell date unix

我想使用'last -t'然后以YYYYMMDDHHMMSS格式传递当前日期/时间,就像它要求的那样。我知道如何获取当前日期/时间的唯一方法是通过“日期”,但它会以错误的格式将其传回去。

也是last -t使用时间帧来显示自时间框架以来登录的用户,当我将其设置为正确的格式时,我将如何从当前时间减去1分钟。

最后是否有一个命令显示那些已经退出的人?

2 个答案:

答案 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
  1. 现在存储时间
  2. 现在打印为YYYYMMDDHH:MM:SS并提取MM,添加-1,存储在MINAGO中
  3. 填充零,长度为2(最后-t要求08分钟而不是8),存储在MINAGO中
  4. 从NOW开始打印时间并用MINAGO替换分钟部分,存储在MINAGO
  5. 使用YYYYMMDDHHMMSS
  6. 致电最后

    你必须通过向那些退出的人展示你的意思来更具体地说明你的意思,因为最后一次向你显示退出的人以及他们何时登出。如果他们还没有登录,他们就会出局。你还需要知道什么?无论如何,可以在/ 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