shell脚本记录登录到本机的用户,登录时间和登录位置
来源:互联网 发布:centos 内核版本 编辑:程序博客网 时间:2024/04/30 09:35
有这样一个需求,记录所有登录用户的信息,包括用户名、登录时间和登录位置到/var/log/login
日志的格式为 username login_location login_time
需求分析:用户的话无非就是root或者是普通用户;
我可以用whoami或者echo $USER命令来查看当前的登录用户
[root@kissing ~]# echo $USER
root
[root@kissing ~]# whoami
root
而登录时间的话,使用命令date就可以搞定
[root@kissing ~]# date +%y-%m-%d\ %H:%M:%S
13-09-21 00:20:40
而登录位置的话,分两种,一种是本地登录,另一种是远程登录;如何判定用户是从哪里登录呢?
[root@kissing ~]# w
00:39:25 up 30 min, 3 users, load average: 0.16, 0.22, 0.18
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.0.102 00:11 27:06 0.20s 0.20s -bash
root pts/1 192.168.0.102 00:12 10:35 0.19s 0.19s -bash
root pts/2 192.168.0.102 00:28 0.00s 0.11s 0.02s w
从这里可以知道,使用w命令可以知道用户登录的位置还有终端,但是究竟哪个才是当前用户的对应的终端信息?
有四个管理员登录,而且用户都是root,所以我们无法用user匹配出为宜信息,而不同的只能是tty可以匹配出唯一数据,
终端
------本地终端(tty1-tty6,图形终端的话都是以:开头的),将本地终端都归为本地登录
-------远程终端(ssh),远程登录的为ip_address
登录到linux上后,使用命令ps查看当前的进程
[root@kissing ~]# ps
PID TTY TIME CMD
2450 pts/2 00:00:00 bash
2485 pts/2 00:00:00 ps
可以知道我当前运行的进程是bash
[root@kissing ~]# ps | grep bash
2450 pts/2 00:00:00 bash
[root@kissing ~]# ps | grep bash | grep -v grep | awk '{print $2}'
pts/2
将这个脚本放在全局变量/etc/bashrc中,就可以实现,用户已登录,马上就会被记录的目的
- shell脚本记录登录到本机的用户,登录时间和登录位置
- spring security3 记录用户登录成功后的登录时间
- 取得每个用户登录次数和最后登录的时间
- jsp之记录用户登录的总次数以及记录用户最后一次登录的时间
- 用户登录和记录密码
- shell脚本监控登录用户是否异常
- Win7系统查看最后登录时间的方法 win7电脑记录用户登录时间的查看
- 记录用户的登录状态
- Shell编程学习-查看用户登录时间
- 控制用户登录的时间
- linux history 记录 时间 ip 登录用户
- shell脚本telnet登录
- Shell-自动登录脚本
- shell脚本登录sftp
- 用户登录记录密码
- 记录用户登录操作
- shell脚本帐号和隐藏密码登录
- Shell 和 Expect 脚本的自动登录运行
- IBM HTTP SERVER 7 安装问题
- IOS回调机制——代理,通知中心以及Block
- 最长公共子序列(Longest-Common-Subsequence,LCS)
- Ubuntu下如何用蓝牙连接手机和蓝牙鼠标
- OCP-1Z0-051-V9.02-142题
- shell脚本记录登录到本机的用户,登录时间和登录位置
- 深入浅出CChart 每日一课——第十八课 女神的套娃,玩转对话框
- C++获得LUA表
- C++ 字符串作为输入源,解析字符串
- 实战Linux Bluetooth编程
- 阶乘相关的算法及其C++实现
- OCP-1Z0-051-V9.02-144题
- Android开发之EditText属性详解
- [JAVA] 99乘法表的镜像