cat read.sh
#!/bin/bash
##This's script to check jboss error,about oracle connect;
cd /home/jboss/jboss-4.2.2.GA/bin
tail nohup.out -c 500k | grep "java.sql.SQLException: An attempt by a client to checkout a Connection has timed out" > read.txt
if grep -q "java.sql.SQLException" read.txt ; then
cd /home/dustin
./restart_jboss.sh
else
echo "not found this error"
fi
exit 0
能夠將腳本放在crond任務計劃中,每10分鐘檢查更新一次
5.備份,針對重要服務的備份不可缺乏,當在執行誤操做事後、或者服務器異常時,備份文件的恢復會給你帶來極大的便利
#!/bin/bash
source ~/.bash_profile
#按照server ip來命名num的
Num=46
date=`date +"%Y_%m_%d"`
##放置備份文件所須要的目錄
cd /home/frank
if [ ! -d server$Num ]
then
mkdir server$Num;
fi
ServerBackup=/home/frank/server$Num
if [ ! -d scripts ]
then
mkdir -p $ServerBackup/jboss-7.0GA
fi
#backup jboss-7.0GA,使用rsync命令
rsync -av /usr/local/jboss-7.0.2GA/standalone/deployments/*.war $ServerBackup/jboss-7.0GA/
rsync -av /usr/local/jboss-7.0.2GA/standalone/configuration $ServerBackup/jboss-7.0GA/
rsync -av /usr/local/jboss-7.0.2GA/standalone/lib $ServerBackup/jboss-7.0GA/
rsync -av /usr/local/jboss-7.0.2GA/bin/conf $ServerBackup/jboss-7.0GA/
#更改屬主、屬組
chown -R frank:root /home/frank
#打包
tar -cvf server$Num.$date.tar.gz server$Num
echo
6.有的時候須要從日誌裏去查找http訪問最多的服務名
思路:
去查找訪問最多的服務名,先看一下nginx 輸出的日誌
221.179.8.24 - - [30/May/2012:15:33:55 +0800] "GET /comum/request?pver=1&ac=checkphone&username=fkk148&data=13112&imsi=460027092382555&plat=14&kver=46&sc=8&prj=7635&smsc=13800290500&mnc=0&mcc=460&lang=1&appid=888lt=1 HTTP/1.1" 200 2 "-" "-"
能夠看出,服務名爲:/comum,以後用cut命令,以「/」爲分割,將comum分割出來
cat 03-23.log | awk '{ print $7 }' | cut -d / -f 2 | sort | uniq -c | sort -n | head -n 1
sort是排序,sort -n是升序,sort -nr是降序,uniq是去掉重複的值
7.使用find命令去刪除日誌文件
當一個程序產生的log文件比較多時,但又不能所有刪除完,這是能夠藉助find命令去查找出日誌,結合xargs將日誌刪除,節約時間,也不用一個個刪除
find ./ -type f ! -newer server.log.11 | grep server.log | xargs rm -rf {};
./表明當前目錄,要記得使用grep,否則會將一些其它文件給刪除掉的,server.log.11是一個間隔點,只要比server.log.11舊,都會刪除掉;
腳本在整理中,後續會將其它腳本貼入,請你們多指點,多交流,多共享