1、mysql配置檔案
$ cat mysql.cfg
[3306]
ip=***.***.***x.***
user=root
pass=***xx
port=3306
auditlog=/home/mysql/data/mysql-audit.json
socket=/tmp/mysql.sock
2、函式檔案,主要是日誌函式
[mysql@trs bin]$ cat common.sh
#!/bin/sh
logger()a==1&&$1~/'$2'/' $3 |sed 's/ *$//g'|sed 's/^ *//g'
getconfig()
section=$1
confile=$2
#乙個段中的名值對,必須實現把所有的都列出來
endprint="user pass port auditlog ip socket"
dd=`date +'%y%m%d'`
for loop in $endprint
docase $loop in
"user")
#user=`awk -f '=' '/\['$section'\]/a==1&&$1~/'$loop'/' $confile |sed 's/ *$//g'|sed 's/^ *//g'`
user=`getvalue $section $loop $confile`
"pass")
pass=`getvalue $section $loop $confile`
"port")
port=`getvalue $section $loop $confile`
"auditlog")
auditlog=`getvalue $section $loop $confile`
"ip")
host=`getvalue $section $loop $confile`
"socket")
socket=`getvalue $section $loop $confile`
esac
#auditlog=`grep $auditlog config.ini |awk -f '=' ''|sed 's/ *$//g'|sed 's/^ *//g'`
done
logdir=$aud_home/logs/$host:$port
[ ! -d $logdir ] && mkdir -p $logdir
( $aud_home/bin/audit_logrotate.sh $user $pass $auditlog $host $port $socket >>$logdir/$:$_$dd 2>&1 )
bdir=`dirname $0`
cd $bdir >/dev/null
aud_home=`dirname $pwd`
cd - >/dev/null
path=$aud_home/bin:$path
export path aud_home
config=$aud_home/config/mysql.cfg
dd=`date +'%y%m%d'`
#獲取配置檔案中的段名稱,如存在[3306]、[3307],會得到3306和3307
section=`grep "^\[.*\]$" $config|grep -o "[[:digit:]]\" | xargs`
for onecom in $section
dogetconfig $onecom $config
done
#刪除過期的日誌
find $aud_home/mysql_audit/* -ctime +10 |xargs rm -rf;
find $aud_home/logs -ctime +10 -exec rm {} \;
4、根據my.cnf的值生成審計日誌
$ cat audit_logrotate.sh
#!/bin/bash
aud_home=$
. $aud_home/bin/common.sh
tt=`date +%y%m%d%h%m%s`
user=$1
pass=$2
auditlog=$3
host=$4
port=$5
socket=$6
dd=`date +'%y%m%d'`
root=mysql_audit
logserver=172.30.4.104
logrotate():$/$dd
[ ! -d $dir ] && mkdir -p $dir
file=mysql-audit.json$tt
out=$dir/$file
logrotate $user $pass $auditlog $out $socket
logger rotate mysql audit to file $out
( $aud_home/bin/rsynclog.sh $aud_home/$root/$:$ $logserver $root)
mysql審計日誌檔案 MySQL審計日誌處理指令碼
1 mysql配置檔案 cat mysql.cfg 3306 ip x.user root pass xx port 3306 auditlog home mysql data mysql audit.json socket tmp mysql.sock 2 函式檔案,主要是日誌函式 mysql t...
mysql的審計日誌 審計日誌的資料庫設計
一些wiki平台使用的一種方法是分離識別資料和您正在審核的內容。它增加了複雜性,但您最終得到了完整記錄的審計跟蹤,而不僅僅是已編輯的字段列表,您必須將其混搭以便讓使用者了解舊記錄的外觀。例如,如果您有乙個名為opportunities的表來跟蹤銷售交易,您實際上會建立兩個單獨的表 機會opportu...
mysql審計方案 MySQL審計功能
mysql審計功能介紹 之前有同事發現資料丟失,由於mysql自身沒有提供審計功能,查詢binlog可以看到操作時間與連線ip,並不顯示哪個使用者做的操作,詢問開發同事都說沒有做刪除操作,也沒辦法定位操作的人員證據,無奈只能恢復資料。general log會記錄詳細的sql執行記錄,但是生產環境如果...