将用户history全都输出到新的文件里。

一边学习一边哭 2017-09-18 04:27:57
原本的每个用户家目录下的.bash_history的文件能容纳的命令条目有限,所以想将用户使用命令记录在新的文件内,并按用户名和日期来加以分类。
在网上找了一段代码如下:
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
HISTDIR=/usr/share/.history
if [ -z $USER_IP ]
then
USER_IP=`hostname`
fi
if [ ! -d $HISTDIR ]
then
mkdir -p $HISTDIR
chmod 700 $HISTDIR
fi
if [ ! -d $HISTDIR/${LOGNAME} ]
then
mkdir -p $HISTDIR/${LOGNAME}
chmod 700 $HISTDIR/${LOGNAME}
fi
export HISTSIZE=4000
DT=`date +%Y%m%d`
export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT"
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"
chmod 700 $HISTDIR/${LOGNAME}/*.history* 2>/dev/null
是想每个操作的用户都有个目录,目录下按日期分别记录历史操作记录。
source /etc/profile之后没有问题。
比如是root用户,但是目录/usr/share/.history/root下没有如预期HISTFILE设置好的文件。
求大神帮忙看看是什么问题。
...全文
624 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
s4353872 2017-09-19
  • 打赏
  • 举报
回复
学习到了一个新技能666
代码誊写工 2017-09-18
  • 打赏
  • 举报
回复
另外
chmod 700 $HISTDIR
这个目录除了root,其它用户都将读写不了,你确定只有root用户使用该脚本?
mkdir -p $HISTDIR/${LOGNAME}
除了root,其它用户都会执行失败,建议改为
chmod 777 $HISTDIR
代码誊写工 2017-09-18
  • 打赏
  • 举报
回复
日志文件不是立即生成的,把当前缓存里的history添加到histroy文件里:
history -a
如果希望每执行一个命令就添加一次可以在/etc/profile里加上
export PROMPT_COMMAND='histroy -a'

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧