1. 程式人生 > >Linux bash運維操作日誌審計(單服務器)

Linux bash運維操作日誌審計(單服務器)

histsize tro chat done shel 特殊 lsattr pan att

目前公司有幾臺機器比較重要,需要把所有用戶的操作記錄下來,於是就是參照資料來完成

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

每分鐘執行一下。

Linux bash運維操作日誌審計(單服務器)