工作中,需要把用户执行的每一个命令都记录下来,并发送到日志服务器的需求,为此我做了一个简单的解决方案。这个方案会在每个用户退出登录 时把用户所执行的每一个命令都发送给日志守护进程rsyslogd,你也可通过配置“/etc/rsyslog.conf”进一步将日志发送给日志服务器
第一种方法
export HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S] [` who am i 2>/dev/null| \
|
awk '{print $NF}' | sed -e 's/[()]//g' `] "
|
if [ -z "$OLD_PWD" ]; then
|
if [ ! -z "$LAST_CMD" ] && [ "$(history 1)" != "$LAST_CMD" ]; then
|
logger -t ` whoami `_shell_cmd "[$OLD_PWD]$(history 1)" ;
|
export LAST_CMD= "$(history 1)" ;
|
第二种方法
第一步:全局设置(这是一次性设置,需要root用户权限)
# vi /etc/profile
#用户登录时执行此脚本
#设置history显示格式
export HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S] [`who am i 2>/dev/null\
| awk '{print $NF}'|sed -e 's/[()]//g'`] "
#登录时清空当前缓存 echo "" > .bash_history
第二步:不同用户分别设置
tmpfile= "/tmp/`whoami`_history.tmp"
|
logger -t ` whoami `_shell_cmd "$line"
|
(如果还有其它用户需要监控,则重复第二步骤)
第三步:把日志发送给远程主机(可选)
不足之处:
1. 不能实时记录命令并发送log
2. 要记录终端桌面下的命令需要重启。
=========
history记录日志
相关推荐
如何让linux的 history命令显示时间记录如何让linux的 history命令显示时间记录
Linux基础课件Linux系统历史命令history命令共10页.pdf.zip
所有用户执行的命令实时保存在一个文件中,文件内容如下: 2016-03-01 17:34:42 ##### USER:root IP:172.16.50.146 8160 22 PS:/dev/pts/1 ppid=2037 pwd=/root #### wget ...
Linux 中的 history 命令是命令行中非常实用的工具,可以帮助用户快速地执行以前的命令,提高工作效率。下面将详细介绍 history 命令的 15 个用法。 1. 使用 HISTTIMEFORMAT 显示时间戳 在 Linux 中,history 命令...
Linux查看History记录加时间戳小技巧 熟悉bash的都一定知道使用history可以输出你曾经输入过的历史命令,例如 [root@servyou_web ~]# history | more 6 ./test.sh 7 vim test.sh 8 ./test.sh 但是这里只显示了...
* ctrl+c:取消命令执行 * ctrl+d:关闭 Shell * ctrl+shift+鼠标选中+c:复制选中字符 * ctrl+shift+v:粘贴 * ctrl+a:快速移动光标到行首 * ctrl+e:快速移动光标到行尾 * ctrl+u:快速删除当前所在字符之前的...
当我们运行 `history` 命令时,它自动在每条命令前加一个数字。如果我们想运行前面的某条命令,而且也知道 `history` 赋予它的数字,这时只需要在感叹号后面跟上命令的历史编号,就能再次运行这个命令。例如: ``` ...
对于普通用户的日志审计,可以使用bash的history功能来记录用户的命令操作记录。在上面的部分内容中,添加了以下命令: vim /etc/profile 在/etc/profile 末尾添加export HISTORY_FILE=/var/log/userAudit.log ...
linux系统history记录保存用户操作日志,登陆时间,防止会话退出时覆盖 以下是代码: #说明: /etc/profile 中结尾添加如果下指令 #保存并执行如下使之生效:source /etc/profile #history #HISTFILESIZE:表示文件的...
SAP系统,默认情况下只能查看用户的上次登录记录, 但之前的登录并不会进行记录。本文介绍了如何设置审计参数文件,并利用审计日志来查看用户在某段时间内的登录情况。
a 重复执行上一条以 a 为首的命令 * !$ 截取上一条命令的结果 * Ctrl+r 在 history 表中查询用户和组 课程外知识 * find -amin n 查找系统中最后 N 分钟访问的文件 * find -atime n 查找系统中最后 n*24 小时访问...
汇总部分history用法,其中包括输入带时间格式history内容,以及history中保存的命令的再次调用的方法等等
1. 不再保存历史记录或者减少历史记录保存数量修改/etc/profile将HISTSIZE=1000 改成 0 或 要保留的数量清除用户home路径下的 .bash_history 代码如下:echo ” > /home/user/.bash_history 2. 立即清空里的history...
这时我们就需要对history进行一些配置,让它报告命令执行的具体时间。 history [选项] [历史命令保存文件] history : 打印历史命令 选项: -c : 清空历史命令 -w : 把缓存中的命令写入历史命令保存文件~/.bash_...
shell-history, 获取用户的shell的命令历史记录 壳历史 获取用户 shell的命令历史。安装$ npm install --save shell-history用法const shellHistory = require('shell-history'
at ip time 程序名(或一个命令) /r 在某时间运行对方某程序并重新启动计算机 finger username @host 查看最近有哪些用户登陆 telnet ip 端口 远和登陆服务器,默认端口为23 open ip 连接到IP(属telnet登陆后的...
eg: history //可以显示用户过去使用的命令 17. !! 执行最近一次的命令 18. mkdir命令 eg: mkdir netseek //创建netseek这个目录 19. tar 解压命令 eg: tar -zxvf nmap-3.45.tgz //将这个解压到nmap-3.45这个...
Linux 中的 alias 命令是一种功能强大的命令,能够帮助用户简化长命令、记住复杂名称的命令、节省时间等。下面将详细介绍 alias 命令的使用方法和场景。 1. 创建 alias alias 命令用于创建别名,简化长命令。例如...
GNULinux Distribution Timeline和The history of Linux两张图,清晰说明了Linux发行版本的变迁和Linux的历史
history命令用于显示当前系统的命令历史记录。 4.5 mesg命令 mesg命令用于控制当前用户的消息接受情况。 Linux终端常用命令综述涵盖了Linux操作系统中最基本的命令,包括信息显示命令、系统管理命令和其他常用...