zoukankan      html  css  js  c++  java
  • Linux bash运维操作日志审计(单服务器)

    目前公司有几台机器比较重要,需要把所有用户的操作记录下来,于是就是参照资料来完成

    1. vim /etc/profile.d/oplogrc.sh

    logdir=/opt/oplog
    userdir=$logdir/${LOGNAME}
    DT=`date +"%Y%m%d"`
    
    export HISTFILE="/$userdir/history.$DT"
    export HISTTIMEFORMAT="%F %T :"
    export HISTSIZE=128
    export HISTFILESIZE=8192
    export PROMPT_COMMAND="history -a"
    
    if [ ! -d $logdir ];then
        mkdir -p $logdir
        chmod 777 $logdir
    fi
    
    if [ ! -d $userdir ];then
        mkdir -p $userdir
        chmod 300 $userdir
    fi
    
    shopt -s histappend
    
    readonly HISTFILE
    readonly HISTTIMEFORMAT
    readonly HISTSIZE
    readonly HISTFILESIZE
    readonly PROMPT_COMMAND
    readonly HISTCMD
    readonly HISTCONTROL

    该文件定义了记录history的位置,目录,并且设置这些环境变量只读

    2. vim /opt/shells/optlogcron.sh    

    logdir=/opt/oplog
    userdir=$(ls $logdir)
    DT=`date +"%Y%m%d"`
    for user in $userdir;do
        hisfile="$logdir/$user/history.$DT"
        if [ ! -f $hisfile ];then
            touch $hisfile
            chown $user:$user $hisfile
            chmod 300 $hisfile
            chattr +a $hisfile
        else
            lsattr $hisfile | awk '{ print $1 }' | grep -v "a" &> /dev/null && chmod 300 $hisfile && chattr +a $hisfile
        fi
        find . -type f -size 0 -mtime +1 -exec chattr -a {} ;
        find . -type f -size 0 -mtime +1 -exec rm -f {} ;
    done

    o该文件主要用途是让日志文件加上特殊权限,防止被删除,清楚一天前的空日志。

    3. crontab -e

    */1 * * * * /opt/shells/oplogcron.sh &> /dev/null    

    每分钟执行一下。

  • 相关阅读:
    May 1 2017 Week 18 Monday
    April 30 2017 Week 18 Sunday
    April 29 2017 Week 17 Saturday
    April 28 2017 Week 17 Friday
    April 27 2017 Week 17 Thursday
    April 26 2017 Week 17 Wednesday
    【2017-07-04】Qt信号与槽深入理解之一:信号与槽的连接方式
    April 25 2017 Week 17 Tuesday
    April 24 2017 Week 17 Monday
    为什么丑陋的UI界面却能创造良好的用户体验?
  • 原文地址:https://www.cnblogs.com/cmsd/p/3707405.html
Copyright © 2011-2022 走看看