Centos7安装配置【supervisor】【glances】【自动化脚本】

Background

  • supervisor是用Python语言开发的一套通用的进程管理程序,可以将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时可以自动重启。
  • glances也是用Python语言开发的一款用于 Linux、BSD 的开源命令行系统监视工具,能够监视 CPU、负载、内存、磁盘 I/O、网络流量、文件系统、系统温度等信息。
  • daemon-operator.sh是我自己开发的shell脚本,该脚本作用是管理supervisor中的shell类守护进程(jar包类程序可以参考另一篇博客【jar包服务操作】【配置 web 界面监控服务运行】【shell脚本】),主要功能就是添加守护进程和删除守护进程。

1、supervisor安装配置

先贴上supervisor官方文档

在这里插入图片描述

  • 安装、启动、自启
yum install -y supervisor
systemctl start supervisord
systemctl enable supervisord
  • 修改配置

配置端口、用户名、密码

cat <<EOF >> /etc/supervisord.conf

[inet_http_server]        
port=*:9001 
username=admin             
password=cloudansys[supervisor]           
EOF
  • 重启
systemctl restart supervisord
  • 浏览器访问 9001端口,输入配置的用户名密码就可以看到下图
    在这里插入图片描述

2、glances安装配置

先贴上glances官方文档

在这里插入图片描述

  • 安装
pip install glances[all]
  • 启动

支持多种模式,这里我们使用Web Server Mode浏览器模式,就是支持在浏览器中访问。

glances -w
  • 浏览器访问61208端口就可以看到下图
    在这里插入图片描述

3、daemon-operator.sh脚本的使用

先贴上daemon-operator.sh源码。
这里我们以glances服务为例来介绍下该脚本的使用,该脚本还可用于其他类似服务,比如redis,rabbtimq等。

#!/bin/bash

:<<!
【脚本说明】
1、此脚本用于管理supervisor中的守护进程;
2、主要功能有添加守护进程、删除守护进程;
3、添加守护进程时需要三个参数,程序名称、程序执行目录、程序启动命令;
!

# 该脚本名
script_name='daemon-operator.sh'

# 配置文件
dir_conf=/etc/supervisord.d/
conf_def=/etc/supervisord.d/default.base
conf_use=/etc/supervisord.d/shell.ini

# 提示信息
s1="If add program, please input params 【add <program_name> <\"cmd\">】"
s2="\n If delete program, please input params 【del <program_name>】"
s3="\n eg.【$script_name add glances \"/usr/local/python3/bin/glances -w\"】"
s4="\n ps.【Absolute path is recommended for the cmd】"
msg="$s1$s2$s3$s4"

# 定制化shell输出
function custom_print(){
    echo -e "\033[5;34m ***** \033[0m"
    echo -e "\033[32m $@ ! \033[0m"
    echo -e "\033[5;34m ***** \033[0m"
}

# 判断该项目是否已配置 web
function exist_program(){
    # 首先判断该项目是否为空
    if [[ ! $1 ]]; then
        echo "true"
    else
        # 再判断 web 配置中是否已配置该项目
        find $dir_conf -name "*.ini" | xargs grep -wq "\[program\:$1\]" && echo "true" || echo "false"
    fi
}

# 获取基础的配置行数
function get_base_row() {
    echo $(cat $conf_def | wc -l)
}

# 获取字符串所在的行号
function get_row_num() {
    echo $(sed -n "/\[program\:$1\]/=" $conf_use)
}

# 根据查找内容删除配置的程序
function del_program(){
    res=$1
    # 去掉 [program*
    res=${res%\[*}
    # 去掉一个冒号:,剩下 文件名:行号
    res=${res%:*}
    # 获取文件名
    file=${res%:*}
    # 获取所在的行号,即起始行号
    start_row=${res#*:}
    # 基础行号
    base_row=$(get_base_row)
    # 终止行号
    end_row=$((start_row + base_row - 1))
    # 删除第N~M行
    str_d='d'
    sed -i "$start_row,$end_row$str_d" $file
}

# web 界面配置 【该功能需要安装 supervisor】
function config(){
    # 判断是否安装了 supervisor
    if [[ -d /etc/supervisord.d/ ]]; then
        # 再判断是否已配置了该项目
        if [[ $(exist_program $1) = "false" ]]; then
            title="[program:$1]"
            user="user=root"
            cmd="command=$2"
            sed -i "1c $title" $conf_def
            sed -i "2c $user" $conf_def
            sed -i "3c $cmd" $conf_def
            cat $conf_def >> $conf_use
            supervisorctl update 
        else
            msg="The program 【$1】 has been added already"
            custom_print $msg
            exit 1
        fi
    else
        msg='Supervisor has not been installed yet'
        custom_print $msg
        exit 1
    fi
}

# 判断输入参数
if [[ -z $1 || -z $2 || $1 = "help" ]]; then
    custom_print $msg
elif [[ $1 = "add" ]]; then
    config $2 "$3"
    msg="【$2】 add success"
    custom_print $msg
elif [[ $1 = "del" ]]; then
    # 在所有ini文件中查找
    res=$(find /etc/supervisord.d/ -name "*.ini" | xargs grep -n "\[program\:$2\]")
    if [[ ! -z $res ]]; then
        del_program $res
        supervisorctl update
        msg="【$2】 delete success"
        custom_print $msg
    else
        msg="The program 【$2】 has not been added yet"
        custom_print $msg
    fi
fi
  • 添加、删除glances服务到supervisor中
    在这里插入图片描述
  • 添加上就可以看到下图
    在这里插入图片描述
  • 删除的配置的服务

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
升级CentOS 7内核的自动化脚本如下所示: ```bash #!/bin/bash # 安装必要软件包 yum install -y wget # 下载最新的内核版本号 latest_kernel_version=$(curl -s https://www.kernel.org/ | awk -F "\"" '/latest_link/{print $2}' | awk -F "/" '{print $1}') # 下载最新的内核源代码 wget https://www.kernel.org/pub/linux/kernel/v${latest_kernel_version}/linux-${latest_kernel_version}.tar.xz # 解压源代码 tar xf linux-${latest_kernel_version}.tar.xz # 进入源代码目录 cd linux-${latest_kernel_version} # 备份当前内核配置 cp /boot/config-$(uname -r) .config # 清除旧的内核配置 make mrproper # 载入当前内核配置 make oldconfig # 编译内核 make -j$(nproc) # 安装新内核 make modules_install install # 更新引导配置 grub2-mkconfig -o /boot/grub2/grub.cfg # 重启系统 reboot ``` 这个脚本的目的是升级CentOS 7的内核。首先,它会安装必要的软件包(比如wget)。然后,它会从https://www.kernel.org/下载最新的内核版本号,并利用wget下载对应的内核源代码。 接下来,它会解压源代码,并进入源代码目录。然后,它会备份当前的内核配置,并清除旧的内核配置。接着,它会载入当前内核配置,并使用make命令编译内核。之后,它会安装新的内核,并更新引导配置。最后,它会重启系统,使内核升级生效。 使用这个自动化脚本,可以方便地升级CentOS 7的内核,提供了快速、高效的方式来更新系统的功能和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WaiSaa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值