查找在特定日期从特定计算机登录的所有用户



我想写一个bash脚本,它以两个参数作为输入(day hostname(,并从hostname的地址输出在当月当天登录的所有用户的username

到现在为止,我已经写了这个代码:

#!/bin/bash
#parameter correction checking
if [ ! $# -eq 2 ]
then echo "You have input the wrong number of parameters!"
fi
#Current month checking
CurrentMonth=`date | cut -d' ' -f2`
#This will contain the abbreviation of the current month: e.g "Mar"
#$2 -> IP/hostname; $1 -> day (of the current month)
last | grep '$2' | grep '$CurrentMonth $1' | cut -d' ' -f1
#here the two greps will get the lines that check out our requirements, and the cut will return only the username

我做错了什么?如果我用Mar替换CurrentMonth变量,用实际的IP address替换$2,代码运行得很好

单引号(''(之间的所有内容都将被视为文本,变量不会被扩展。相反,对包含变量的字符串使用双引号(""(。

请注意,如果使用bash -x yourscript启动bash脚本或将shebang更改为#!/bin/bash -x,则始终可以调试bash脚本并显示扩展命令。

脚本的工作版本如下所示:

#!/bin/bash
#parameter correction checking
if [ ! $# -eq 2 ]
then echo "You have input the wrong number of parameters!"
fi
#Current month checking
CurrentMonth=`date | cut -d' ' -f2`
#This will contain the abbreviation of the current month: e.g "Mar"
#$2 -> IP/hostname; $1 -> day (of the current month)
last | grep "$2" | grep "$CurrentMonth $1" | cut -d' ' -f1
#here the two greps will get the lines that check out our requirements, and the cut will return only the username


备注:

默认情况下,last会打印一个缩写用户名,您可能需要添加-w标志来打印全名。

另外请注意,您可以使用last的内置函数来按时间进行过滤,而不是使用grep

-s, --since time
Display the state of logins since the specified time. This is useful, e.g., to easily determine who was logged in at a particular time. The option is often combined with --until.
-t, --until time
Display the state of logins until the specified time.
TIME FORMATS
The options that take the time argument understand the following formats:
┌────────────────────┬────────────────────────────────────────────┐
│                    │                                            │
│YYYYMMDDhhmmss      │                                            │
├────────────────────┼────────────────────────────────────────────┤
│                    │                                            │
│YYYY-MM-DD hh:mm:ss │                                            │
├────────────────────┼────────────────────────────────────────────┤
│                    │                                            │
│YYYY-MM-DD hh:mm    │ (seconds will be set to 00)                │
├────────────────────┼────────────────────────────────────────────┤
│                    │                                            │
│YYYY-MM-DD          │ (time will be set to 00:00:00)             │
├────────────────────┼────────────────────────────────────────────┤
│                    │                                            │
│hh:mm:ss            │ (date will be set to today)                │
├────────────────────┼────────────────────────────────────────────┤
│                    │                                            │
│hh:mm               │ (date will be set to today, seconds to 00) │
├────────────────────┼────────────────────────────────────────────┤
│                    │                                            │
│now                 │                                            │
├────────────────────┼────────────────────────────────────────────┤
│                    │                                            │
│yesterday           │ (time is set to 00:00:00)                  │
├────────────────────┼────────────────────────────────────────────┤
│                    │                                            │
│today               │ (time is set to 00:00:00)                  │
├────────────────────┼────────────────────────────────────────────┤
│                    │                                            │
│tomorrow            │ (time is set to 00:00:00)                  │
├────────────────────┼────────────────────────────────────────────┤
│                    │                                            │
│+5min               │                                            │
├────────────────────┼────────────────────────────────────────────┤
│                    │                                            │
│-5days              │                                            │
└────────────────────┴────────────────────────────────────────────┘

相关内容

  • 没有找到相关文章

最新更新