shell编程入门--nginx监控脚本
6.5系统下的基本操作:
对服务的操作:
/etc/init.d/服务名称 start/restart/stop/status
6.5系统下通过编写脚本实现对nginx服务的操作:
配置nginx服务:
<1>先在虚拟机上配置好yum源,并且下载openssh-clients包
将相关nginx压缩包通过scp命令传到6.5系统的虚拟机上。
解压:
[[email protected] ~]# tar zxf nginx-1.14.0.tar.gz
<2>修改配置文件
[[email protected] ~]# cd nginx-1.14.0
[[email protected] nginx-1.14.0]# vi src/core/nginx.h
14 #define NGINX_VER "nginx/" NGINX_VERSION
改为:
14 #define NGINX_VER "nginx/"
[[email protected] nginx-1.14.0]# vi auto/cc/gcc
171 # debug
172 #CFLAGS="$CFLAGS -g"
<3>安装所需的辅助包
[[email protected] nginx-1.14.0]# yum install pcre-devel -y
[[email protected] nginx-1.14.0]# yum install gcc -y
[[email protected] nginx-1.14.0]# yum install openssl-devel -y
<4>检测,编译并运行
在Linux下安装一个应用程序时,一般先运行脚本configure,然后用make来编译源程序,再运行make install。
configure是一个shell脚本,它可以自动设定源程序以符合各种不同平台上Unix系统的特性,并且根据系统叁数及环境产生合适的Makefile文件或是C的头文件(header file),让源程序可以很方便地在这些不同的平台上被编译连接。
[[email protected] 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
[[email protected] nginx-1.14.0]# make && make install
<5>创建软连接,创建nginx用户
[[email protected] ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[[email protected] ~]# useradd nginx
<6>启动nginx
[[email protected] html]# nginx
<7>测试:
编写nginx默认发布文件:
[[email protected] ~]# cd /usr/local/nginx/html/
[[email protected] html]# ls
50x.html index.html[[email protected] html]# vi index.html
<h1>server6.5-172.25.81.100</h1>
关闭iptables和ip6tables服务
[[email protected] html]# /etc/init.d/iptables stop
[[email protected] 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/functionsprogram=/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 $*
给脚本添加执行权限,执行脚本的结果如下: