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    

    每分钟执行一下。

  • 相关阅读:
    函数-列表生成式
    函数-闭包
    函数-参数
    函数-装饰器
    函数-函数递归
    函数-高阶函数
    函数-命名空间
    函数-匿名函数
    模块-shutil
    在 Android 5.1.1 执行 remount system failed 解决方法
  • 原文地址:https://www.cnblogs.com/cmsd/p/3707405.html
Copyright © 2011-2022 走看看