自定义日志:记录Linux主机操作
2023-09-14 09:00:34 时间
一、背景
Linux系统自带的shell窗口操作记录文件.bash_history,可以记录用户执行过的命令,但不足的是,记录的日志文件易于被删除,且信息量较少。有没有什么方式可以在各个Linux主机上留存shell窗口的操作记录,并且有丰富的说明信息(命令、执行人、执行时间、执行目录等)?
二、分析
考虑使用shell脚本来实现:
1、另存shell操作的日志内容
2、丰富日志内容的说明信息(命令、执行人、执行时间、执行目录等)
但不足的是,需要部署,机器少还好,可以单个部署,机器多了工作量就很大了,到时候应该考虑其他方式部署。
三、实现方案
(一)脚本准备
1、*.log 记录存储位置:
mkdir -p /usr/local/records
chmod 777 /usr/local/records/
chmod +t /usr/local/records/
2、*.sh 脚本存储位置:
mkdir -p /usr/local/system_script
3、编写脚本(记录用户执行过的命令):
vim /usr/local/system_script/bash_recorda.sh
# record cmd history # 1.prepare alias su='su -l ' HISTTIMEFORMAT="%F %T " # 2.mkdir if [ ! -d /usr/local/records/${LOGNAME} ] then mkdir -p /usr/local/records/${LOGNAME} chmod 300 /usr/local/records/${LOGNAME} fi # 3.log format and record *.log export HISTORY_FILE_DATE_NAME=`date "+%Y-%m-%d"` export HISTORY_FILE="/usr/local/records/${LOGNAME}/bash_history_${HISTORY_FILE_DATE_NAME}.log" export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(pwd) #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE'
(二)部署脚本
1、使脚本可执行
chmod +x /usr/local/system_script/bash_recorda.sh
2、/etc/profile末尾追加内容:
vim /etc/profile
source /usr/local/system_script/bash_recorda.sh
(三)查看效果
1、执行一些命令
2、查看命令记录
cd /usr/local/records/
ll
cd 对应用户文件夹
vim 对应*.log日志
相关文章
- 【Linux】在linux上java工具jps jstat jinfo等命令找不到怎么办
- Linux - pip 安装使用说明
- linux 如何截取一段时间内log日志
- 【学习总结】快速上手Linux玩转典型应用-第2章-linux简介
- linux执行python命令后没有反应,不打印日志信息
- 查看Linux登陆日志
- fedora30(linux):安装rabbitmq 3.8.14
- 每天一个linux命令-ls命令
- linux日志管理命令详解
- 十万字整理linux常用命令,超详细
- 53.第十二章 Linux启动和内核管理 -- proc 目录和内核参数管理、sys 目录、内核模块管理、systemd、管理 grub2(二)
- L61.linux命令每日一练 -- 第九章 Linux进程管理命令 -- renice和nohup
- L52.linux命令每日一练 -- 第八章 Linux磁盘与文件系统管理命令 -- resize2fs和fsck
- L50.linux命令每日一练 -- 第八章 Linux磁盘与文件系统管理命令 -- tune2fs和parted
- L45.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- sudo和id
- Linux系统shell脚本之mysql的日志备份
- linux命令之内存信息查询
- 位于/var/log目录下的20个Linux日志文件
- Linux【实操篇】—— 日志管理
- 【Deepin 20系统】Linux 系统安装Spark教程及使用
- Linux文件系统(Linux一切皆文件)
- 【Docker系列】2.Linux 安装docker+docker-compose
- 嵌入式Linux开发,Ubuntu下交叉编译内核报错:error while loading shared libraries: /lib/x86_64-linux-gnu/libc++.so: