10分钟

任务4 编写并执行Shell脚本

任务目的

编写Shell脚本,完成Nginx服务进程数的持续上报,并在后台运行该脚本。

任务步骤

1.安装Nginx并采集进程数

安装并启动Nginx,不会安装Nginx的学员可以参考课程《快速搭建网站实战》实验步骤的任务2

安装完毕后通过命令ps aux | grep nginx | grep -v grep | wc -l采集Nginx服务进程数量。

[root@VM_0_6_centos ~] ps aux | grep nginx | grep -v grep | wc -l

如图:

采集Nginx服务进程数

2.编写并启动Shell脚本

编写Shell脚本,并保存。

[root@VM_0_6_centos ~] vi nginx_pro_cnt.sh

脚本内容如下:

#!/bin/bash


# 获取云服务器内网IP

myip=$(curl http://metadata.tencentyun.com/latest/meta-data/local-ipv4 2>>/dev/null)

# 循环上报该数据
while true

do

# nginx_pro_cnt变量为Nginx服务进程数
nginx_pro_cnt=$(ps aux | grep nginx | grep -v grep | wc -l)

# metrics变量为上报自定义监控项的数据格式
metrics=$(cat <<EOF

[

  {

    "MetricName": "nginx_pro_cnt",

    "Value": $nginx_pro_cnt

  }

]

EOF

)

# 向云监控上报数据以及时间
tccli monitor PutMonitorData --Metrics "$metrics" --AnnounceIp "$myip" --AnnounceTimestamp $(date +%s)

# 循环周期为一分钟
sleep 60

done

将上一步中的示例代码保存为nginx_pro_cnt.sh后,给脚本文件添加可执行权限。并后台执行脚本,即可通过该Shell脚本在后台进行目标指标的持续上报。

[root@VM_0_6_centos ~] chmod +x nginx_pro_cnt.sh
[root@VM_0_6_centos ~] nohup ./nginx_pro_cnt.sh &

如图:

启动脚本