当前位置:脚本大全 > > 正文

python怎么转换jar包(利用python脚本如何简化jar操作命令)

时间:2022-01-21 00:05:27类别:脚本大全

python怎么转换jar包

利用python脚本如何简化jar操作命令

前言

本篇和大家分享的是使用python简化对jar包操作命令,封装成简短关键字或词,达到操作简便的目的。最近在回顾和构思shell脚本工具,后面一些文章应该会分享shell内容,希望大家继续关注。

获取磁盘中jar启动包

这一步骤主要扫描指定磁盘中待启动的jar包,然后获取其路径,方便后面操作java命令:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • #获取磁盘中jar启动包
  • def find_file_bypath(strDir):
  •  filelist = os.listdir(strDir)
  •  for file in filelist:
  •   if os.path.isdir(strDir + "/" + file):
  •    find_file_bypath(strDir + "/" + file)
  •   else:
  •    if(file.find(".jar") >= 0):
  •     fileInfo = MoFileInfo(file,strDir + "/" + file)
  •     all_list.append(fileInfo)
  • 这个递归获取路径就不多说了,可以参考前一篇文章

    获取某个程序进程pid

    在linux中获取某个程序pid并打印出来通常的命令是:

    1 ps -ef | grep 程序名字

    在py工具中同样用到了grep命令,通过执行linux命令获取相对应的pid值:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • #获取pid
  • def get_pid(name):
  •  child = subprocess.Popen(['pgrep', '-f', name], stdout=subprocess.PIPE, shell=False)
  •  response = child.communicate()[0]
  •  print(response)
  •  return response
  • 这里直接取的第一个值,因为上面第一节已经能够定位到程序jar包的名字,所以获取pid很容易

    自定义jar操作命令

    自定义其实就是用我们随便定义的单词或关键字来代替jar包操作命令,这里我封装了有5种,分别如下:

    {}代表的是pid和jar包全路径,相关代码:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • #执行命令
  • def exec_file(index):
  •  try:
  •   if(index <= -1):
  •    pass
  •   else:
  •    fileInfo = all_list[int(index)]
  •    print("你选择的是:{}".format(fileInfo.path))
  •    strcmd = raw_input("请输入执行命令(nr:nohup启动java r:java启动 k:kill d:删除java包 kd:kill+删除jar包):\r\n")
  •    if(strcmd == "nr"):
  •    os.system("nohup java -jar {} 2>&1 & ".format(fileInfo.path))
  •    elif(strcmd == "r"):
  •    os.system("java -jar {}".format(fileInfo.path))
  •    elif(strcmd == "k"):
  •    pid = get_pid(fileInfo.name)
  •    print("pid:" + pid)
  •    strcmd_1 = "kill -9 {}".format(pid)
  •    exec_cmd(strcmd_1)
  •    elif(strcmd == "d"):
  •    strcmd_1 = "rm -rf {}".format(fileInfo.path)
  •    exec_cmd(strcmd_1)
  •    elif(strcmd == "kd"):
  •    pid = get_pid(fileInfo.name)
  •    strcmd_1 = "kill -9 {}".format(pid)
  •    exec_cmd(strcmd_1)
  •  
  •    strcmd_1 = "rm -rf {}".format(fileInfo.path)
  •    exec_cmd(strcmd_1)
  •    else:
  •    print("无任何操作")
  •  except:
  •   print("操作失败")
  • 这里python操作linux命令用到的方式是os.system(command) ,这样已定保证了linux命令执行成功后才继续下一步的操作;下面是本次分享内容的全部代码:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • #!/usr/bin/python
  • #coding=utf-8
  • import os
  • import subprocess
  • from subprocess import check_output
  •  
  • all_list = []
  •  
  • class MoFileInfo:
  •  def __init__(self,name,path):
  •   self.name = name
  •   self.path = path
  •  
  • #获取磁盘中jar启动包
  • def find_file_bypath(strDir):
  •  filelist = os.listdir(strDir)
  •  for file in filelist:
  •   if os.path.isdir(strDir + "/" + file):
  •    find_file_bypath(strDir + "/" + file)
  •   else:
  •    if(file.find(".jar") >= 0):
  •     fileInfo = MoFileInfo(file,strDir + "/" + file)
  •     all_list.append(fileInfo)
  •  
  • def show_list_file():
  •  for index,x in enumerate(all_list):
  •   print("{}. {}".format(index,x.name))
  •  
  • #获取pid
  • def get_pid(name):
  •  child = subprocess.Popen(['pgrep', '-f', name], stdout=subprocess.PIPE, shell=False)
  •  response = child.communicate()[0]
  •  print(response)
  •  return response
  •  
  • #执行命令
  • def exec_file(index):
  •  try:
  •   if(index <= -1):
  •    pass
  •   else:
  •    fileInfo = all_list[int(index)]
  •    print("你选择的是:{}".format(fileInfo.path))
  •    strcmd = raw_input("请输入执行命令(nr:nohup启动java r:java启动 k:kill d:删除java包 kd:kill+删除jar包):\r\n")
  •    if(strcmd == "nr"):
  •    os.system("nohup java -jar {} 2>&1 & ".format(fileInfo.path))
  •    elif(strcmd == "r"):
  •    os.system("java -jar {}".format(fileInfo.path))
  •    elif(strcmd == "k"):
  •    pid = get_pid(fileInfo.name)
  •    print("pid:" + pid)
  •    strcmd_1 = "kill -9 {}".format(pid)
  •    exec_cmd(strcmd_1)
  •    elif(strcmd == "d"):
  •    strcmd_1 = "rm -rf {}".format(fileInfo.path)
  •    exec_cmd(strcmd_1)
  •    elif(strcmd == "kd"):
  •    pid = get_pid(fileInfo.name)
  •    strcmd_1 = "kill -9 {}".format(pid)
  •    exec_cmd(strcmd_1)
  •  
  •    strcmd_1 = "rm -rf {}".format(fileInfo.path)
  •    exec_cmd(strcmd_1)
  •    else:
  •    print("无任何操作")
  •  except:
  •   print("操作失败")
  •  
  • def exec_cmd(strcmd):
  •  str = raw_input("是否执行命令(y/n):" + strcmd + "\r\n")
  •  if(str == "y"):
  •   os.system(strcmd)
  •  
  • strDir = raw_input("请输入jar所在磁盘路径(默认:/root/job):\r\n")
  • strDir = strDir if (len(strDir) > 0) else "/root/job"
  • #获取运行包
  • find_file_bypath(strDir)
  • #展示运行包
  • show_list_file()
  • #选择运行包
  • strIndex = raw_input("请选择要运行的编号:\r\n")
  • #执行命令
  • exec_file(strIndex)
  • 总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对开心学习网的支持。

    原文链接:https://www.cnblogs.com/wangrudong003/p/10423548.html

    标签:
    上一篇下一篇

    猜您喜欢

    热门推荐