简单的linux服务器nignx服务巡检脚本-ITB运维部落—http://www.itbcn.cn—ITB运维技术交流之家平台
记录工作点滴
分享运维知识

简单的linux服务器nignx服务巡检脚本

背景:
这篇文章主要介绍了根据公司需求写的一个linux 巡检小脚本,可以用来检查服务器的一些运行状况,需要的朋友可以参考下。

巡检的基本步骤:
1.在每台服务器上部署巡检的脚本,查询相应的日志。

2.将每台服务器上的日志发送到ftp服务器的指定目录下。

3.遍历ftp服务器指定目录,并且将各个的文件信息整理到一个文件中。

4.将整理后的文件通过邮件发送给指定的人员。

5.删除冗余的日志文件。

对应的脚本:
1.巡检的脚本:

##############################################start########################################################################
#!/bin/sh

hostname=`hostname`
date=`date +%c`
filename=`hostname`_check_`date -d ‘-1 day’ +%Y%m%d`.txt
tempfile=”/tmp/$filename”
if [ ! -f “$tempfile” ];then
touch “$tempfile”
fi
echo “—————-daily check begin——-“>>$tempfile
echo “—————–$hostname————————–” >>$tempfile
echo “———–磁盘使用情况—————————–” >>$tempfile
df -h >>$tempfile

echo “———-内存使用情况—————————–” >>$tempfile
free -m >>$tempfile

echo “———-cpu占用情况———————————-” >>$tempfile
top >>$tempfile

#cd /var/log/nginx
cd /data/log/nginx/`date -d ‘-1 day’ +%Y%m%d`

myfile1=”hotapps_access.log”
myfile2=”hotapps-ssl_access.log”
myfile3=”hotapps_access.log.gz”
myfile4=”hotapps-ssl_access.log.gz”

echo “——–nginx请求总量—————————- “>>$tempfile
if [ -f “$myfile1” ]; then
wc -l $myfile1 $myfile2 >>$tempfile
#gzip $myfile1;
fi
#if [ -f “$myfile2” ]; then
#gzip $myfile2;
#fi
if [ -f “$myfile3” ]; then
zcat $myfile3 $myfile4 |wc -l >>$tempfile
fi

echo “——–nginx状态码————————- “>>$tempfile
if [ -f “$myfile1” ]; then
awk ‘ {print $2}’ $myfile1 $myfile2 | sort | uniq -c | sort -rn >>$tempfile
#gzip $myfile1
fi
if [ -f “$myfile3” ]; then
zcat $myfile3 $myfile4 |awk ‘ {print $2}’|sort | uniq -c | sort -rn >>$tempfile
fi

cd /data/log/jetty

echo “———jetty错误日志—————————-” >>$tempfile
myfile5=”googleinstaller-server.log.`date -d ‘-1 day’ +%Y%m%d`”
myfile6=”googleinstaller-server.log.`date -d ‘-1 day’ +%Y%m%d`.gz”
if [ -f “$myfile5″ ]; then
awk -v line=0 ‘{if (line==1) print($0); if ($3==”ERROR”) {line=1;} else {line=0;}}’ $myfile5 |sort | uniq -c | sort -rn >>$tempfile
#gzip $myfile5
fi
if [ -f “$myfile6″ ]; then
zcat $myfile6 |awk -v line=0 ‘{if (line==1) print($0); if ($3==”ERROR”) {line=1;} else {line=0;}}’ |sort | uniq -c | sort -rn >>$tempfile
fi

echo “———daily check end ————————-” >>$tempfile

#rm $tempfile
#####################################end############################################################

2.将服务器的日志发送到ftp服务器上。

############################start###############################
LOFFILE=”/opt/server_check_log/ftp.log”
ftp -n >>$LOFFILE <<EOF
open 此处为ftp服务器的ip
user ftp服务器的用户名称 ftp服务器的密码
binary
cd /opt/server_check_log
put test.txt
bye
EOF
########################脚本结束###########################
3.将指定目录下的所有的文件整理为一个文件,方便阅读

##############################################start#########################################
#!bin/bash
#print the directory and file

for file in /opt/server_check_log/log/*
do

if test -f $file
then
#echo “$file is file”
cat $file >> /opt/server_check_log/getAll.txt

fi
done
###########################################end#############################################
4.通过邮件发送正在开发当中。。。。。。。。。。。。

5.删除冗余日志:

#!/bin/sh

date=`date +%c`
filename=`hostname`_check_`date -d ‘-1 day’ +%Y%m%d`.txt
tempfile=”/tmp/$filename”

rm -rf $tempfile
6.cron表达式,所有的脚本都通过cron,定时任务来进行调度

00 02 * * * /tmp/server_daily_check.sh restart
00 14 * * * /tmp/delete_server_daily_check.sh restart

————————————————
版权声明:本文为CSDN博主「我是李果」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/li12412414/article/details/79418740

未经允许不得转载:ITB运维部落—http://www.itbcn.cn—ITB运维技术交流之家平台 » 简单的linux服务器nignx服务巡检脚本

如果文章对你有帮助,欢迎点击上方按钮打赏作者

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址