#!/bin/bash
npath=
'/var/log/nginx/'
ppath=
'/var/log/php-fpm/'
countfile=
'.count'
host=`
hostname
`
date
=`
date
+
'-%Y%m%d'
`
dflag=`
date
+
'%H%M'
`
#每分钟读取日志的次数,一天的最后一分钟只读取一次
if
[[ $dflag ==
'2359'
]];
then
count=1
else
count=2
fi
for
((i=0; i<$count; i++))
{
#nginx
cd
$npath
if
[[ $dflag ==
'2359'
]];
then
/usr/sbin/logrotate
/etc/logrotate_hd
.conf
#每天23:59切割日志
for
fname
in
`
ls
|
grep
-E
".com$|.log$"
`
do
startnum=`
grep
"^$fname"
$countfile |
awk
'{print $2}'
`
if
[ -e $fname$
date
];
then
sed
-i
"s/^$fname $startnum/$fname 1/"
$countfile
endnum=`
awk
'END{print NR}'
$fname$
date
`
awk
-
v
h=
" $host"
"{if((NR>=$startnum)&&(NR<=$endnum))print \$0 h}"
$fname$
date
|
/usr/local/scribe/examples/scribe_cat
-h 127.0.0.1:2463
"10_$fname"
else
endnum=`
awk
'END{print NR}'
$fname`
if
[ $endnum -gt $startnum ];
then
sed
-i
"s/^$fname $startnum/$fname $endnum/"
$countfile
awk
-
v
h=
" $host"
"{if((NR>=$startnum)&&(NR<$endnum))print \$0 h}"
$fname |
/usr/local/scribe/examples/scribe_cat
-h 192.168.186.135:2463
"10_$fname"
fi
fi
done
else
for
fname
in
`
ls
|
grep
-E
".com$|.log$"
`
do
startnum=`
grep
"^$fname"
$countfile |
awk
'{print $2}'
`
if
[[ -z $startnum ]];
then
echo
"$fname 1"
>> $countfile
startnum=1
fi
endnum=`
awk
'END{print NR}'
$fname`
if
[ $endnum -gt $startnum ];
then
sed
-i
"s/^$fname $startnum/$fname $endnum/"
$countfile
awk
-
v
h=
" $host"
"{if((NR>=$startnum)&&(NR<$endnum))print \$0 h}"
$fname |
/usr/local/scribe/examples/scribe_cat
-h 192.168.186.135:2463
"10_$fname"
fi
done
fi
#php-fpm
cd
$ppath
if
[[ $dflag ==
'2359'
]];
then
for
fname
in
`
ls
|
grep
-E
".slow$|.log$"
`
do
startnum=`
grep
"^$fname"
$countfile |
awk
'{print $2}'
`
if
[ -e $fname$
date
];
then
sed
-i
"s/^$fname $startnum/$fname 1/"
$countfile
endnum=`
awk
'END{print NR}'
$fname$
date
`
awk
-
v
h=
" $host"
"{if((NR>=$startnum)&&(NR<=$endnum))print \$0 h}"
$fname$
date
|
/usr/local/scribe/examples/scribe_cat
-h 192.168.186.135:2463
"11_$fname"
else
endnum=`
awk
'END{print NR}'
$fname`
if
[ $endnum -gt $startnum ];
then
sed
-i
"s/^$fname $startnum/$fname $endnum/"
$countfile
awk
-
v
h=
" $host"
"{if((NR>=$startnum)&&(NR<$endnum))print \$0 h}"
$fname |
/usr/local/scribe/examples/scribe_cat
-h 192.168.186.135:2463
"11_$fname"
fi
fi
done
else
for
fname
in
`
ls
|
grep
-E
".slow$|.log$"
`
do
startnum=`
grep
"^$fname"
$countfile |
awk
'{print $2}'
`
if
[[ -z $startnum ]];
then
echo
"$fname 1"
>> $countfile
startnum=1
fi
endnum=`
awk
'END{print NR}'
$fname`
if
[ $endnum -gt $startnum ];
then
sed
-i
"s/^$fname $startnum/$fname $endnum/"
$countfile
awk
-
v
h=
" $host"
"{if((NR>=$startnum)&&(NR<$endnum))print \$0 h}"
$fname |
/usr/local/scribe/examples/scribe_cat
-h 192.168.186.135:2463
"11_$fname"
fi
done
fi
sleep
10
}