Linux bash運維操作日誌審計(單服務器)
阿新 • • 發佈:2018-02-12
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運維操作日誌審計(單服務器)