我想用python写个web界面简单执行远程linux命令 web界面要能自由填写执行shell命令和脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想用python写个web界面简单执行远程linux命令 web界面要能自由填写执行shell命令和脚本相关的知识,希望对你有一定的参考价值。

请问学习python的哪些方面可以实现这些功能

首先python基础你得会:
最简单套路:web用flask,linux交互用subprocessor模块
说白了就三点:python基础、flask框架、subprocessor模块
参考技术A 1. python 基础知识. 如 控制语句、异常处理try...except。
2. 内置的数据结构. 如:元组、列表、字典....
3. 模块函数、字符 正则表达式
以上为基础
4. python 的web框架要Diango
5. 还需要学习web的相关模块.

至少应掌握这些方面知识.
参考技术B 如果你是为了远程操作的话,不要用web界面,用secure shell。如果你是为了写这个python程序,那你需要标准库里的subprocess和cgi。 参考技术C web界面的话,SimpleServer+html就可以搞定
远程ssh的话,推荐使用sshed这个python库,简单高效稳定
参考技术D 我正在做类似的东西,Shell,文件管理,桌面截屏,语音监听。

python如何执行shell命令

  Jmeter是公司做接口测试的一个开源项目,今天在研究如何用python写个脚本去执行这个jmeter脚本,Jmeter有命令行模式和界面模式,设置好了环境之后,我用了最简单的一条命令做了测试:

jmeter -n -t <testplan filename> -l <listener filename>

   比如:jmeter -n -t  ..../文件.jmx  -l  result.txt  这里忽略jmx文件的编写,这些是测试写好的,我只要调用命令去执行就好了,后期写个定时任务来完成。

   由于是用pycharm,配置好文件路径之后,我直接调用了os.system()来执行,不料却报错,后来用后来用subprocess.Popen也出现了错误,都提示jmeter命令找不到:

  

import os

import sys

currpath = os.path.dirname(os.path.realpath(__file__))  # 当前文件目录
sys.path.insert(0, currpath)
# # print(currpath)
JmxTemlFileName = r/Users/admin/Documents/jmeter/stu_tea_test.jmx  # 要执行的文件
#
JMETER_Home = r‘‘‘"/Users/admin/Downloads/apache-jmeter-5.1.1/bin/jmeter.bat"‘‘‘  # jmeter执行文件

Jmeter_Out = currpath + /result.txt

def runCmd(cmd):
    print(f"command={cmd}")
    os.system(cmd)
   ########### 下面使用subprocess.Popen来调用shell############
# res = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE) # print(‘sys‘,sys.path) # stdoutinfo,stderrinfo = res.communicate() # print(f"stderrinfo={stderrinfo}") # print(f"stdoutinfo={stdoutinfo}") # print("returncode={0}".format(res.returncode))

exec_str = f"jmeter -n -t {JmxTemlFileName} -l {Jmeter_Out}"

if __name__ == ‘__main__‘:
runCmd(exec_str)
 

 

/usr/local/bin/python3.6 /Users/admin/PycharmProjects/untitled/t/jmeter_test/jmt_test.py
command=jmeter -n -t /Users/admin/Documents/jmeter/stu_tea_test.jmx -l /Users/admin/PycharmProjects/untitled/t/jmeter_test/result.txt
sh: jmeter: command not found

 

  明明我的环境都配置好了,为什么在终端运行的好好地,在pycharm却无法运行呢?在网上搜索了一下,发现应该还是环境问题,pycharm的环境和我们系统的环境还是不一样的

  于是我使用终端打开python3,运行了一下之前的文件,发现ok。其实也可以在pycharm中配置jmeter的环境变量也可以运行起来。

 

  总结:pycharm的环境变量是独立的,与系统的环境变量没有关系,当我们运行不起来时,要检查一下pycharm的环境变量是否有我们需要的bash命令。

 

以上是关于我想用python写个web界面简单执行远程linux命令 web界面要能自由填写执行shell命令和脚本的主要内容,如果未能解决你的问题,请参考以下文章

python如何执行shell命令

我想用java poi 写个EXCEL导出工具,用啥设计模式写比较好,原因是啥?

Python 跨机器及跨平台调用cmd命令

20201124-web方向-命令执行-RCE

急~求帮忙写个简单的关于猜投掷骰子的PYTHON程序!!QAQ

如何在zabbix执行远程主机的脚本或指令