shell服务管理->
nginx.php等服务管理练习脚本
->nginx的启动状态
root@jumpserver-70 day02]# cat nginx_web.sh #!/bin/bash source /etc/init.d/functions nginx_status() { if [ $? -eq 0 ];then action "nginx is $1 OK!" /bin/true else action "nginx is $1 failed!" /bin/false fi } case $1 in start) nginx &>/dev/null nginx_status $1 ;; stop) nginx -s stop &>/dev/null nginx_status $1 ;; reload) nginx -s reload &>/dev/null nginx_status $1 ;; *) echo "USAGE:$0{start|stop|reload}" esac
->安装nginx->查看状态
echo "===============================System Repo=============================" Repos=$(yum repolist |grep nginx|wc -l) if [ $Repos -eq 0 ];then echo "没有发现Nginx的yum仓库...尝试中" cat >/etc/yum.repos.d/nginx.repo <<-EOF #使用cat方法导入 [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/x86_64/ gpgcheck=0 enabled=1 EOF yum makecache &>/dev/null #清空缓存 Repos2=$(yum repolist |grep nginx|wc -l) #再次yum尝试安装 if [ $Repos2 -eq 1 ];then echo "yum仓库已经安装完成...." else echo "请检查你的网络环境...." exit 1 fi else echo "已存在Nginx的Repos仓库文件..." fi echo "===============================System Nginx Install=======================" Rpm_Nginx=$(rpm -qa nginx | wc -l) if [ $Rpm_Nginx -gt 0 ];then echo "Nginx 已经安装....." else echo "尝试安装Nginx...." yum install nginx -y &>/dev/null fi echo "=======================System Nginx Status ======================" Nginx_Status=$(systemctl status nginx|grep running|wc -l) if [ $Nginx_Status -eq 1 ];then echo "Nginx已经启动" else echo "Nginx尝试启动" pkill httpd &>/dev/null pkill nginx &>/dev/null systemctl start nginx &>/dev/null if [ $? -eq 0 ];then Nginx_Status2=$(systemctl status nginx|grep Active|awk '{print $2 $3}') echo "nginx启动完成, 当前的状态是: $Nginx_Status2" else echo "启动失败, 请手动排查......" fi fi
->nginx状态管理
[root@jumpserver-70 scripts]# cat nginx_status.sh #!/bin/bash echo "-----------------------" echo "1:开启" echo "2:停止" echo "3:重载" echo "4:重启" echo "5:状态" echo "-----------------------" read -p "请输入您要执行的命令:" command case $command in 1) status_start=$(systemctl status nginx | egrep "running" |wc -l) if [ $status_start -eq 1 ];then echo "nginx已经启动,不需要执行启动操作" else systemctl start nginx &>/dev/null echo "nginx已经启动" fi ;; 2) systemctl stop nginx &>/dev/null echo "nginx已经停止" ;; 3) status_start=$(systemctl status nginx | egrep "running" |wc -l) if [ $status_start -eq 1 ];then systemctl reload nginx &>/dev/null echo "nginx已经重载" fi ;; 4) systemctl restart nginx &>/dev/null echo "nginx已经重启" ;; 5) systemctl status nginx ;; *) echo "请您选择正确的命令" exit 1 esac
->nginx状态监控脚本(zabbix)
[root@web03 day01]# cat nginx_status.sh #!/bin/bash ############################################################ # $Name: nginx_status.sh # $Version: v1.0 # $Function: Nginx Status # $Author: # $organization: # $Create Date: 2018-9-19 # $Description: Monitor Nginx Service Status ############################################################ NGINX_COMMAND=$1 NGINX_PORT=80 nginx_active(){ /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Active/ {print $NF}' } nginx_reading(){ /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Reading/ {print $2}' } nginx_writing(){ /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Writing/ {print $4}' } nginx_waiting(){ /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Waiting/ {print $6}' } nginx_accepts(){ /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $1}' } nginx_handled(){ /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $2}' } nginx_requests(){ /usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $3}' } case $NGINX_COMMAND in active) nginx_active; ;; reading) nginx_reading; ;; writing) nginx_writing; ;; waiting) nginx_waiting; ;; accepts) nginx_accepts; ;; handled) nginx_handled; ;; requests) nginx_requests; ;; *) echo $"USAGE:$0 {active|reading|writing|waiting|accepts|handled|requests}" esac
->简单参考版 [root@web03 scripts]# cat nginx_status.sh #!/bin/bash port=80 while true do if [ $# -eq 1 ];then case $1 in active) curl -s 127.0.0.1${port}/status | awk '/Active/{print $NF}' break ;; accepts) curl -s 127.0.0.1${port}/status | awk 'NR==3{print $1}' break ;; handled) curl -s 127.0.0.1${port}/status | awk 'NR==3{print $2}' break ;; request) curl -s 127.0.0.1${port}/status | awk 'NR==3{print $3}' break ;; *) echo "USAGE $0 {active|accepts|requests|handled}" exit esac else echo "参数只能为1个,请参考{active|accepts|requests|handled}" break fi done
->根据系统版本安装yum源
[root@jumpserver-70 scripts]# cat repo.sh #!/bin/bash os_name=$(cat /etc/redhat-release ) os_version=$(cat /etc/redhat-release |awk -F " " '{print $4}'| awk -F "." '{print $1}') if [ $os_version -eq 7 ];then echo "这是$os_name的系统,请安装centos7的yum源" wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo &>/dev/null echo "$os_name:yum源安装完成" elif [ $os_version -eq 6 ];then echo "这是$os_name系统,请安装centos6的yum源" wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo &>/dev/null echo "$os_name:yum源安装完成" elif [ $os_version -eq 5 ];then echo "这是$os_name系统,请安装centos6的yum源" wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo &>/dev/null echo "$os_name:yum源安装完成" else echo "请检查系统的版本" fi
->选择php版本安装
[root@jumpserver-70 scripts]# cat php.sh #!/bin/bash echo '1=(php-5.0)' echo '2=(php-6.0)' echo '3=(php-7.0)' read -p "请输入要安装的版本:" num if [ $num -eq 1 ];then echo "正在安装php5.0" elif [ $num -eq 2 ];then echo "正在安装php6.0" elif [ $num -eq 3 ];then echo "正在安装7.0" else echo "请选择安装版本" fi