#!/bin/bash
cd /u1/Operation_log/
##format log
for i in `ls -l | awk '{if(NR==1)next;print $NF}'`
do
cat $i | perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' | col -b > /home/Operation_filter_log/clean/$i
done
###--------------------------------------------------------###
##normal commmand
cd /home/Operation_filter_log/clean/
for j in `ls -l | awk '{if(NR==1)next;print $NF}'`
do
egrep "Script|@$HOSTNAME" $j > /home/Operation_filter_log/normal/$j.txt
done
##dangerous commmand
#if [ "$(ls -A /home/Operation_filter_log/dangerous/)" != "" ];then
#ls -l /home/Operation_filter_log/dangerous/ | awk '{if(NR==1)next;print $NF}' > /root/list.txt
cd /home/Operation_filter_log/normal/
for k in `ls -l | awk '{if(NR==1)next;print $NF}'`
do
file1=`ls -l /home/Operation_filter_log/dangerous/$k |awk '{print $5}'`
egrep -w 'rm|reboot|shutdown|init|poweroff|passwd|mkfs|kill|pkill|stop|clusvcadm|fence_drac|fence_ipmilan' $k > /dev/null
if [ "$?" = "0" ];then
egrep -w "Script|@$HOSTNAME|rm|reboot|shutdown|init|poweroff|passwd|mkfs|kill|pkill|stop|clusvcadm|fence_drac|fence_ipmilan" $k > /home/Operation_filter_log/dangerous/$k
ls -l /home/Operation_filter_log/dangerous/ | awk '{if(NR==1)next;print $NF}' > /root/list.txt
file2=`ls -l /home/Operation_filter_log/dangerous/$k |awk '{print $5}'`
else
exit 2
fi
done
if [ "$file1" != "$file2" ];then
for u in `awk -F"$HOSTNAME-|-" '{print $2}' /root/list.txt|sort -u`
do
content=(`grep "$u" /root/list.txt`)
content_LEN=${#content[@]}
i=0
while [ $i -lt $content_LEN ]
do
/usr/local/mysql/bin/mysql -h 192.168.177.66 -uxxx -pxxx -P3306 mon -e "insert into operation_log(hostname,user,execution_time,content) values('$HOSTNAME','$u',now(),'`cat /home/Operation_filter_log/dangerous/${content[$i]}`');"
let i++
done
done
cd /u1/Operation_log/
##format log
for i in `ls -l | awk '{if(NR==1)next;print $NF}'`
do
cat $i | perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' | col -b > /home/Operation_filter_log/clean/$i
done
###--------------------------------------------------------###
##normal commmand
cd /home/Operation_filter_log/clean/
for j in `ls -l | awk '{if(NR==1)next;print $NF}'`
do
egrep "Script|@$HOSTNAME" $j > /home/Operation_filter_log/normal/$j.txt
done
##dangerous commmand
#if [ "$(ls -A /home/Operation_filter_log/dangerous/)" != "" ];then
#ls -l /home/Operation_filter_log/dangerous/ | awk '{if(NR==1)next;print $NF}' > /root/list.txt
cd /home/Operation_filter_log/normal/
for k in `ls -l | awk '{if(NR==1)next;print $NF}'`
do
file1=`ls -l /home/Operation_filter_log/dangerous/$k |awk '{print $5}'`
egrep -w 'rm|reboot|shutdown|init|poweroff|passwd|mkfs|kill|pkill|stop|clusvcadm|fence_drac|fence_ipmilan' $k > /dev/null
if [ "$?" = "0" ];then
egrep -w "Script|@$HOSTNAME|rm|reboot|shutdown|init|poweroff|passwd|mkfs|kill|pkill|stop|clusvcadm|fence_drac|fence_ipmilan" $k > /home/Operation_filter_log/dangerous/$k
ls -l /home/Operation_filter_log/dangerous/ | awk '{if(NR==1)next;print $NF}' > /root/list.txt
file2=`ls -l /home/Operation_filter_log/dangerous/$k |awk '{print $5}'`
else
exit 2
fi
done
if [ "$file1" != "$file2" ];then
for u in `awk -F"$HOSTNAME-|-" '{print $2}' /root/list.txt|sort -u`
do
content=(`grep "$u" /root/list.txt`)
content_LEN=${#content[@]}
i=0
while [ $i -lt $content_LEN ]
do
/usr/local/mysql/bin/mysql -h 192.168.177.66 -uxxx -pxxx -P3306 mon -e "insert into operation_log(hostname,user,execution_time,content) values('$HOSTNAME','$u',now(),'`cat /home/Operation_filter_log/dangerous/${content[$i]}`');"
let i++
done
done
fi
本文转自 liang3391 51CTO博客,原文链接:http://blog.51cto.com/liang3391/663122