btmp日志提取工具

    工作中总是需要查询btmp日志,但使用lastb命令没有办法指定时间段,所以就看了一下lastb命令的源码,结合utmp结构体写了这个小工具。代码点击这里
    目前只用到了btmp.h和generate_logfile.c,有这2个文件即可编译运行。server.c和client.c可以用于传输提取好的文件,采用c/s架构,虽然能用,但不方便,我还需要仔细思考,继续完善。

工具作用

    如果需要提取特定时间段的btmp日志,可以使用该工具。

使用方法

  1. 确认btmp日志的路径,默认为/var/log/btmp,如不为该路径,在generate_logfile.c中自定义路径;
  2. 编译运行,输入timestamp格式的起止时间
# gcc generate_logfile.c -o generate_logfile
# ./generate_logfile 
Please input the starttime(timestamp) :1612165251
Please input the endtime(timestamp) :1612165427
1612165251      6       0       ba      181.48.46.195
1612165292      6       0       root    v118-27-6-78.3eg2.static.cnode.io
1612165313      6       0       root    199.195.253.25
1612165383      6       0       jf      postfix11.itp.net
1612165385      6       0       jf      postfix11.itp.net
1612165401      6       0       pashm   118.25.27.67
1612165403      6       0       pashm   118.25.27.67
1612165424      6       0       db      182.254.168.205
1612165425      6       0       qe      181.48.46.195
1612165426      6       0       db      182.254.168.205
1612165427      6       0       qe      181.48.46.195
1612165251      6       0       ba      181.48.46.195
1612165292      6       0       root    v118-27-6-78.3eg2.static.cnode.io
1612165313      6       0       root    199.195.253.25
1612165383      6       0       jf      postfix11.itp.net
1612165385      6       0       jf      postfix11.itp.net
1612165401      6       0       pashm   118.25.27.67
1612165403      6       0       pashm   118.25.27.67
1612165424      6       0       db      182.254.168.205
1612165425      6       0       qe      181.48.46.195
1612165426      6       0       db      182.254.168.205
1612165427      6       0       qe      181.48.46.195

    可以看到,由于btmp的两个函数分别都使用了printf,所以最终结果打印了两遍。

  1. 生成binlog.txt和filelog.txt。
# cat filelog.txt 
1612165251      6       0       ba      181.48.46.195
1612165292      6       0       root    v118-27-6-78.3eg2.static.cnode.io
1612165313      6       0       root    199.195.253.25
1612165383      6       0       jf      postfix11.itp.net
1612165385      6       0       jf      postfix11.itp.net
1612165401      6       0       pashm   118.25.27.67
1612165403      6       0       pashm   118.25.27.67
1612165424      6       0       db      182.254.168.205
1612165425      6       0       qe      181.48.46.195
1612165426      6       0       db      182.254.168.205
1612165427      6       0       qe      181.48.46.195

    binlog.txt的内容是二进制数据,跟btmp日志内容一样,filelog.txt的内容便于阅读。第1列表示timestamp时间;第2列表示utmp结构体的类型,其中6表示登录会话,详情参考/usr/include/bits/utmp.h;第3列表示远程主机的Internet地址,我也不知道为什么总是0;第4列表示登陆用户名;第5列表示主机名。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值