Python控制Sonar服务启动停止重启操作

由于每次重启电脑之后需要重新进入sonar文件夹中启动sonar服务,比较繁琐。刚好最近在学习Python,就想着是否可以通过Python写个脚本来启动sonar,省去多余的工作量。

因为使用Python执行shell命令需要使用到os库,所以先简单学习了一下os,其实只需要用到os的一个方法 os.system()

这个方法就是用于执行shell命令的。

制作菜单

需要满足基本操作:启动/停止/重启三个功能:

    sonar_o = ['启动sonar', '停止sonar', '重启sonar']
    print('欢迎使用Sonar静态代码扫描服务')

    i = 1
    for s in sonar_o:
        print(i, s)
        i = i + 1

打印结果:

欢迎使用Sonar静态代码扫描服务
1 启动sonar
2 停止sonar
3 重启sonar

接收输入的操作符

根据菜单编号执行相应操作,需要接收控制台输入:

menu = int(input("请输入操作:"))

这只是接收控制台输入,接收到的值存在存在menu中,还需要处理异常情况,比如:如果输入的菜单编号<1或>3是不合法的,需要重新输入:

 menu = int(input("请输入操作:"))
    if menu in range(1, 4):
        # 执行操作
        return
    else:
        printMenu()

这里用到range(x,y)这个函数,这是系统函数,作用是生成一个范围list。因为我们允许接收1,2,3这三个参数,所以使用range(1,4),返回的结果是1,2,3,正好符合我的需求。

执行命令

通过os.system()执行shell命令

sonar_cmd这个变量存储的是sonar.sh这个脚本的目录,完整的命令是通过在脚本目录后加上相关命令。

如果输入的是1则执行start 命令

如果输入的是2则执行stop命令

如果输入的是3则执行restart命令

def execCmd(op):
    sonar_cmd = '/usr/local/sonarqube-6.7.4/bin/macosx-universal-64/./sonar.sh '
    if op == 1:
        os.system(sonar_cmd + 'start')
    elif op == 2:
        os.system(sonar_cmd + 'stop')
    elif op == 3:
        os.system(sonar_cmd + 'restart')

优化流程

有时候需要停止服务之后又需要启动或重启服务。所以,在操作完之后需要再次询问是否需要继续操作,需要就再次打印菜单,根据用户输入执行相应命令;否则退出程序。

def execCmd(op):
    sonar_cmd = '/usr/local/sonarqube-6.7.4/bin/macosx-universal-64/./sonar.sh '
    if op == 1:
        os.system(sonar_cmd + 'start')
    elif op == 2:
        os.system(sonar_cmd + 'stop')
    elif op == 3:
        os.system(sonar_cmd + 'restart')

    re = input('是否需要继续操作?y(继续操作) n(任意键退出)')
    if re == 'y':
        printMenu()
    else:
        exit()

至此,一个简易的sonar控制程序就完成了,以下贴出完整代码:

import os
def printMenu():
    sonar_o = ['启动sonar', '停止sonar', '重启sonar']
    print('欢迎使用Sonar静态代码扫描服务')

    i = 1
    for s in sonar_o:
        print(i, s)
        i = i + 1

    menu = int(input("请输入操作:"))
    if menu in range(1, 4):
        execCmd(menu)
        return
    else:
        printMenu()

def execCmd(op):
    sonar_cmd = '/usr/local/sonarqube-6.7.4/bin/macosx-universal-64/./sonar.sh '
    if op == 1:
        os.system(sonar_cmd + 'start')
    elif op == 2:
        os.system(sonar_cmd + 'stop')
    elif op == 3:
        os.system(sonar_cmd + 'restart')

    re = input('是否需要继续操作?y(继续操作) n(任意键退出)')
    if re == 'y':
        printMenu()
    else:
        exit()


printMenu()

Python控制sonar服务启动停止重启操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值