首页 > 其他分享 >服务自动化管理脚本示例

服务自动化管理脚本示例

时间:2023-12-30 15:45:36浏览次数:22  
标签:脚本 bin Nginx function 示例 nginx key 自动化 action

1、编写业务逻辑代码

 cat nginx_auto.sh
. /etc/init.d/functions
function Status () {
    state=`systemctl status nginx|grep -w active | awk '{print $2}' | xargs`
    if [ "$state" == "active" ];then
        action "Nginx is Running Now." /bin/true
    else
        action "Nginx not running or has somes errors, Please try \"nginx -t\"" /bin/false
    fi

}
function Start () {

    systemctl start nginx
    if [ $? -eq 0 ];then
        action "Nginx is begining." /bin/true
    else
        action "Nginx can't be started. Please try \"nginx -t\"" /bin/false
    fi

}

function Stop () {
    systemctl stop nginx
    action "Nginx has been stopped." /bin/true
}

function Reload () {
    /usr/sbin/nginx -t
    if [ $? -ne 0 ];then
        action "Nginx has some error. Please try \"nginx -t\" to it." /bin/false
        exit
    fi
    systemctl reload nginx
    if [ $? -eq 0 ];then
        action "Nginx is reloaded successfully." /bin/true
    else
        action "Nginx failed to reload. Please check if Nginx is on." /bin/false
    fi
}

function Enable () {
    grep -w '^/usr/sbin/nginx$' /etc/rc.local > /dev/null
    if [ $? -ne 0 ];then
        echo "/usr/sbin/nginx" >> /etc/rc.local
        chmod +x /etc/rc.local
        action "Nginx is enabled successfully." /bin/true
    fi
}

function Disable () {
    sed -i 's#^/usr/sbin/nginx$##' /etc/rc.local
    action "Nginx is disabled successfully." /bin/true
}

function Exit() {
    read -p "是否确认退出?[Y/N]" key
    if ! [[ "$key" == "Y" || "$key" == "y" || "$key" == "N" || "$key" == "n" ]];then
        echo "您的输入有误,请重新选择!"
    fi
    if [[ "$key" = "Y" || "$key" = "y" ]];then
        echo "正在退出系统..."
        exit 0  # 正常退出,状态码为0
    elif [[ "$key" = "N" || "$key" = "n" ]];then
        continue   # 继续循环,回到上面的提示输入选项步骤
    fi
}

2、编写主函数代码

 cat nginx_main.sh
#!/bin/bash

# 导入nginx启停函数库
function main() {
. /root/test/nginx_auto.sh
echo "选择您要执行的操作"
select key in  "state" "start" "stop" "restart" "reload" "enable" "disable" "Exit"
do
case $key in
    state)
        Status
        ;;
    start)
        Start
        ;;
    stop)
        Stop
        ;;
    restart)
        Stop
        Start
        ;;
    reload)
        Reload
        ;;
    enable)
        Enable
        ;;
    disable)
        Disable
        ;;
     Exit)
        Exit
        ;;
        *)
        echo "Usage: $0 [start|stop|restart|reload|enable|disable|Exit]"
esac
done
}

main

3、效果

image

标签:脚本,bin,Nginx,function,示例,nginx,key,自动化,action
From: https://www.cnblogs.com/MarkGuo/p/17936446.html

相关文章

  • windows下编写lua脚本生成exe
    之前我有个想法,想在window下,远程执行服务器Linux下的某个脚本,我第一时间想到的是用jekenis,但感觉如果能对输入参数更灵活操作,会更好些,然后发现一个比较有意思的工具srlua ,它可以将lua编写的代码打包输出成exe文件。srlua目录内容如下:操作说明:glue.exesrlua.exetest.lu......
  • 【flink番外篇】7、flink的State(Keyed State和operator state)介绍及示例(2) - operator
    Flink系列文章一、Flink专栏Flink专栏系统介绍某一知识点,并辅以具体的示例进行说明。1、Flink部署系列本部分介绍Flink的部署、配置相关基础内容。2、Flink基础系列本部分介绍Flink的基础部分,比如术语、架构、编程模型、编程指南、基本的datastreamapi用法、四大基......
  • Spring Boot学习随笔- 集成MyBatis-Plus,第一个MP程序(环境搭建、@TableName、@TableId
    学习视频:【编程不良人】Mybatis-Plus整合SpringBoot实战教程,提高的你开发效率,后端人员必备!引言MyBatis-Plus是一个基于MyBatis的增强工具,旨在简化开发,提高效率。它扩展了MyBatis的功能,提供了许多实用的特性,包括强大的CRUD操作、条件构造器、分页插件、代码生成器等。MyBati......
  • SharePoint 开发:如何通过脚本生成Site Collection的Permission Report
    Blog链接:https://blog.51cto.com/13969817越来越多的企业,为了数据安全或者审计的需求,需要管理员定期将SharePoint网站集权限生成报告,其中包括:·      网站集下所有子网站的权限设置·      网站集管理员列表·      应用于每个SharePoint对象的权限,如网站(子网......
  • Java+SpringBoot+Maven+TestNG+httpclient+Allure+Jenkins实现接口自动化
    一、方案需求目标:测试左移,测试介入研发过程,验证单接口正常及异常逻辑选用工具:Java、SpringBoot、Maven、TestNG、httpclient、Allure、Jenkins方案:创建测试接口测试工程,参照研发设计文档和设计思路,编写正常及异常用例,直接调用服务端接口,覆盖接口逻辑和验证异常处理,提升接口健壮......
  • Python+Selenium+Pytest+Allure+Jenkins实现的Web自动化框架
    目录一、测试的项目二、需求分析三、用例设计-部分用例举例四、框架说明4.1测试框架结构图如下:4.2项目功能五、代码设计与功能说明5.1POM简介:PageObjectModle页面对象模型5.2基础封装层:pages/basePage.py5.3PO页面对象层:pages/userLoginPage.py5.4TestCase测试用例层:testc......
  • 自动化测试学习
    1.分层处理POM  POM的核心思想:把重复的操作独立出去 2.报表生成allure报表的固定写法 3.pytest测试  4.其他 4.1元组解包使用*4.2使用yaml文件作为数据驱动  安装PYyaml包:pipinstallPYyaml  导入yaml使用;importyaml  4.2.1读取yaml文件......
  • 【Linux】什么是shell脚本?shell变量分为哪几类?
    在Linux操作系统中,shell是一个非常重要的存在,它是一个解释器,可以保护系统内核不被篡改的软件,一般所使用的系统中默认启动的shell是bash。那么什么是shell?shell变量分为哪几类?具体内容请看下文:什么是shell?Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shel......
  • 31.Playwright 自动化测试框架
    Playwright简介 Playwright官网:https://playwright.dev/python/docs/introWeb自动化测试框架。跨平台多语言支持。支持Chromium、Firefox、WebKit等主流浏览器自动化操作。Playwright的优点 支持所有流行的浏览器。速度更快,更可靠的执行。更强大的......
  • 经纬恒润轻量化网络自动化测试系统TestBase_DESKNAT重磅发布!
        经纬恒润桌面式网络自动化测试系统TestBase_DESKNAT2.0产品重磅发布! ......