用日志记录Linux用户执行的每一条命令(history)

工作中,需要把用户执行的每一个命令都记录下来,并发送到日志服务器的需求,为此我做了一个简单的解决方案。这个方案会在每个用户退出登录时把用户所执行的每一个命令都发送给日志守护进程rsyslogd,你也可通过配置“etcrsyslog.conf”进一步将日志发送给日志服务器

第一种方法

#vi etcprofile

#设置history格式

exportHISTTIMEFORMAT=[%Y-%m-%d %H%M%S] [`who am i 2devnull

awk'{print $NF}'sed -e 's[()]g'`]

#记录shell执行的每一条命令

exportPROMPT_COMMAND='

if[ -z $OLD_PWD ];then

    export OLD_PWD=$PWD;

fi;

if[ ! -z $LAST_CMD ] && [ $(history 1) != $LAST_CMD ]; then

    logger -t `whoami`_shell_cmd[$OLD_PWD]$(history 1);

fi;

exportLAST_CMD=$(history 1);

exportOLD_PWD=$PWD;'

 

第二种方法

 

第一步:全局设置(这是一次性设置,需要root用户权限)

#vi etcprofile

#用户登录时执行此脚本

#设置history显示格式

exportHISTTIMEFORMAT=[%Y-%m-%d %H%M%S] [`who am i 2devnull

 awk '{print $NF}'sed -e 's[()]g'`]

#登录时清空当前缓存 echo   .bash_history

 

第二步:不同用户分别设置

#source etcprofile

#vi homeuser1.bash_logout

#当用户退出登录时会执行此脚本

tmpfile=tmp`whoami`_history.tmp

#把格式化的history记录到文件里

history  $tmpfile

#读取文件,一行一行把文件内容发送到给syslogd。

#不要试图用history  logger或logger -f$tmpfile来替代下面的代码,

#否则将只能记录前200行。

k=1

whileread line; do

((k++))

logger-t `whoami`_shell_cmd $line

done  $tmpfile

rm-f $tmpfile

(如果还有其它用户需要监控,则重复第二步骤)

 

第三步:把日志发送给远程主机(可选)

#vi etcrsyslog.conf

 #增加如下行,IP自己换,也可以用域名,@表示用UDP协议,@@表示用TCP协议

 . @192.168.0.1

 

不足之处:

1.不能实时记录命令并发送log

2.要记录终端桌面下的命令需要重启。

免费领取兄弟连IT教育原创linux运维工程师视频/细说linux教程,详情咨询官网客服:http://www.lampbrother.net/linux/

学PHP、Linux、HTML5、UI、Android等视频教程(课件+笔记+视频)!联系Q2430675018

       兄弟连linux课堂实录视频,领取联系Q2430675018

1、workbook,一个可以记录、管理、查询、统计工作日志的小工具。 2、运行在命令行模式下,不用鼠标即可完成全部操作。 3、可以记录每天的工作内容,并对工作内容可以进行增删改操作。 4、可以对工作内容进行查询和统计,比如在某一段时间内,你都做了哪些工作?这些工作各占用了你多少时间?该工作在你的工作时间内占用了多大的比例? 等等。 5、工作内容包括:工作类别、工作开始日期、工作结束日期、工作时长、工作内容 6、对每个工作内容强制进行分类,分类的类别完全自定义 7、对每个工作内容,需要提供该工作共花费了你多少时间,也就是工作时长;该时长不要求是非常精确,你可以给出一个大约值,当然,越精确越好。 也可以不提供时长,但是如果没有提供时长,则被认为该工作是没有完成的。你可以在工作还没有完成时记录一下日志,然后再完成以后记录一下时长。 8、工作的状态分为完成和未完成,完成的工作会记录完成时的日期。 9、提供登录密码功能来保护隐私安全,可以修改密码,可以初始化密码,初始密码为:123456,请及时修改密码。 10、该软件使用JAVA语言编写,数据库使用的是H2。数据文件的名称为workbookdb.h2.db,该文件记录了所有的工作日志,所以请及时备份该文件。 11、该工具不需要安装,所有文件都必须放在同一个目录下才能运行。 12、由于本工具使用JAVA语言编写,请把JRE整个文件夹拷贝到该工具的同一个目录下,再运行本工具。 13、本工具分为2个版本:windows版本、Linux版本。windows版本请运行workbook.bat;Linux版本请运行workbook.sh,如果没有权限,请赋权后执行。 14、如果有问题,欢迎在作者的博客中留言交流:http://blog.csdn.net/dbsync/article/details/11267233 运行方法:首先拷贝JRE整个目录,放到本工具的目录下,然后windows上运行workbook.bat;linux上运行workbook.sh 初始密码:123456 作者:滴石水
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值