export HISTTIMEFORMAT="%F %T `whoami` " #或将%F %T 修改为%Y-%m-%d %H:%M:%S
export HISTSIZE=5000 #定义history命令输出的记录总数,默认1000
#提取登录IP,若为空主机名填补
USER_IP=$(who am i | awk '{print $5}'|tr -d '()')
if [ -z "$USER_IP" ]
then
USER_IP=`hostname`
fi
#自动创建history文件夹
if [ ! -d /opt/history ]
then
mkdir /opt/history #自定义存储位置,确保历史命令记录的安全与可管理性。
chmod 777 /opt/history
fi
#自动创建用户名文件夹
if [ ! -d /opt/history/${LOGNAME} ]
then
mkdir /opt/history/${LOGNAME}
chmod 300 /opt/history/${LOGNAME}
fi
#定义历史文件名称及保存路径
Date=`date +"%Y%m%d_%H%M%S"`
HISTFILE="/opt/history/${LOGNAME}/${USER_IP}_$Date.txt"
2./etc/profile.d/下 脚本是遍历执行,新增的脚本尽量靠后,避免出现影响执行问题,我这块遇到命名history.sh执行后获取不到正确IP,改为userip.sh正确执行或将脚本添加至/etc/profile末尾,source生效执行。
3.每次登录都会生成一个对应文件,若登录量大可考虑设置自动定时删除旧文件,例如删除30天之前的历史文件
0 1 * * * find /opt/history/ -type f -mtime +30 -exec rm -f {} ;
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...