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旧,都会删除掉;
脚本在整理中,后续会将其它脚本贴入,请你们多指点,多交流,多共享