shell编程入门--nginx监控脚本

 6.5系统下的基本操作:

对服务的操作:

/etc/init.d/服务名称  start/restart/stop/status

6.5系统下通过编写脚本实现对nginx服务的操作:

配置nginx服务:

<1>先在虚拟机上配置好yum源,并且下载openssh-clients包

将相关nginx压缩包通过scp命令传到6.5系统的虚拟机上。

 解压:

[root@rhel6 ~]# tar zxf nginx-1.14.0.tar.gz

<2>修改配置文件

[root@rhel6 ~]# cd nginx-1.14.0

[root@rhel6 nginx-1.14.0]# vi src/core/nginx.h

14 #define NGINX_VER          "nginx/" NGINX_VERSION

改为:

 14 #define NGINX_VER          "nginx/"

 [root@rhel6 nginx-1.14.0]# vi auto/cc/gcc

171 # debug

172 #CFLAGS="$CFLAGS -g"

<3>安装所需的辅助包

[root@rhel6 nginx-1.14.0]# yum install pcre-devel -y

[root@rhel6 nginx-1.14.0]# yum install gcc -y

[root@rhel6 nginx-1.14.0]# yum install openssl-devel -y

<4>检测,编译并运行

在Linux下安装一个应用程序时,一般先运行脚本configure,然后用make来编译源程序,再运行make install。

configure是一个shell脚本,它可以自动设定源程序以符合各种不同平台上Unix系统的特性,并且根据系统叁数及环境产生合适的Makefile文件或是C的头文件(header file),让源程序可以很方便地在这些不同的平台上被编译连接。

[root@rhel6 nginx-1.14.0]# ./configure --prefix=/usr/local/nginx --with-threads --with-file-aio --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx

[root@rhel6 nginx-1.14.0]# make && make install

<5>创建软连接,创建nginx用户

[root@rhel6 ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

[root@rhel6 ~]# useradd nginx

<6>启动nginx

[root@rhel6 html]# nginx

<7>测试:

编写nginx默认发布文件:

[root@rhel6 ~]# cd /usr/local/nginx/html/
[root@rhel6 html]# ls
50x.html  index.html

[root@rhel6 html]# vi index.html

<h1>server6.5-172.25.81.100</h1>

关闭iptables和ip6tables服务

[root@rhel6 html]# /etc/init.d/iptables stop

[root@rhel6 html]# /etc/init.d/ip6tables stop

 

在真机浏览器上输入ip地址,看是否能看到默认发布目录.

练习:编写监控Nginx服务的Shell脚本

使用源码包安装的Nginx没办法使用"service nginx start"或"/etc/init.d/nginx start"进行操作和控制,所以写了以下的服务控制脚本。 

脚本实现功能:
#本脚本编写完成后,放置在/etc/init.d/目录下,就可以被linux系统自动识别到该脚本
#如果本脚本名为/etc/init.d/nignx,

则/etc/init.d/nignx start就可以启动该服务
/etc/init.d/nignx stop就可以关闭服务
/etc/init.d/nignxrestart就可以重启服务
/etc/init.d/nignxx status就可以查看服务状态

在/etc/init.d目录下编写名为nginx的脚本文件:

#!/bin/bash
. /etc/init.d/functions

program=/usr/local/nginx/sbin/nginx

function usage() {
   echo $"usage:$0 {start|stop|status|restart}"
   exit 1
}

function status() {
    if [ `netstat -anpt | grep nginx | wc -l` -ge 1 ];then
         action "nginx is started."     /bin/true
    else
         action "nginx is stoped"       /bin/true
    fi
}

function start() {
    if [ `netstat -anpt | grep nginx | wc -l` -ge 1 ];then
        echo "nginx is already started."
    else
        $program
        echo "nginx is starting"
        status
    fi
}

function stop() {
    if [ `netstat -anpt | grep nginx | wc -l` -eq 0 ];then
        echo "nginx is already stoped."
    else
        $program -s stop
        echo "nginx is stopping"
        status
    fi
}

function main() {
    if [ $# -ne 1 ];then
       usage $0
    fi
    case $1 in
      start)
         start
         ;;
      stop)
         stop
         ;;
      status)
         status
         ;;
      restart)
         stop
         start
         ;;
      *)
         usage $0
         ;;
    esac
}
main $*

给脚本添加执行权限,执行脚本的结果如下:

猜你喜欢

转载自blog.csdn.net/weixin_40172997/article/details/86165847