10.保存history记录
1.把所有輸入過的命令記錄到/var/log/message
export HISTFILESIZE=1000000 export HISTSIZE=4096 export HISTTIMEFORMAT="%F %T `whoami` " export PROMPT_COMMAND="history -a" export PROMPT_COMMAND='{ msg=$(history 1 | { read x y ; echo $y ;});logger "[euid=$(whoami)]":$(who am i):[`pwd`]" $msg";}' 說明: %Y:4位数的年份;%m:2位数的月份数;%d:2位数的一个月中的日期数;%H:2位数的小时数(24小时制);%M:2位数的分钟数;%S:2位数的秒数 %F:相當于%Y-%m-%d %T:same as %H:%M:%S
2.把所有用戶記的操作記錄到相對應的文件
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]" USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` HISTDIR=/var/log/.hist if [ -z $USER_IP ];then USER_IP=$HOSTNAME fi if [ ! -d $HISTDIR ];then mkdir -p $HISTDIR chmod 777 $HISTDIR fi if [ ! -d $HISTDIR/${LOGNAME} ];then mkdir -p $HISTDIR/${LOGNAME} chmod 300 $HISTDIR/${LOGNAME} fi export HISTSIZE=4096 DT=`date +%Y%m%d_%H%M%S` export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.hist.$DT" chmod 600 $HISTDIR/${LOGNAME}/*.hist* 2>/dev/null
另一种方法
[root@localhost ~]# mkdir /usr/local/records # 创建日志文件存放的目录 [root@localhost ~]# chmod 777 !$ chmod 777 /usr/local/records [root@localhost ~]# chmod +t !$ chmod +t /usr/local/records [root@localhost ~]# vim /etc/profile # 文件末尾增加以下内容 if [ ! -d /usr/local/records/${LOGNAME} ] then mkdir -p /usr/local/records/${LOGNAME} chmod 300 /usr/local/records/${LOGNAME} fi export HISTORY_FILE="/usr/local/records/${LOGNAME}/bash_history" export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE' [root@localhost ~]# source /etc/profile # 让profile的配置生效
3.
LINUX用户登录后精确命令记录(history 按时间、用户显示命令记录)
# 设置保存历史命令的文件大小,在.bash_history中最多保存的命令條數
export HISTFILESIZE=10000000
# 保存历史命令条数,用history最多顯示的命令條數
export HISTSIZE=1000000
# 实时记录历史命令,默认只有在用户退出之后才会统一记录,很容易造成多个用户间的相互覆盖。
export PROMPT_COMMAND="history -a"
# 记录每条历史命令的执行时间
export HISTTIMEFORMAT="%Y-%m-%d_%H:%M:%S "

浙公网安备 33010602011771号