【python – 如何只允许管理员执行命令】教程文章相关的互联网学习教程文章

python执行shell命令并继续而不等待,并在执行前检查是否正在运行【代码】

我需要从另一个执行另外两个python脚本.命令看起来像这样: #python send.py #python wait.py 这将在一个循环中发生,该循环将休眠1分钟然后重新运行. 在执行命令以启动其他脚本之前,我需要确保它们仍然没有运行.解决方法:您可以使用subprocess.Popen来执行此操作,例如:import subprocesscommand1 = subprocess.Popen(['command1', 'args1', 'arg2']) command2 = subprocess.Popen(['command2', 'args1', 'arg2'])如果需要检索输出...

在Python中为shell命令转义字符串[复制]【代码】

参见英文答案 > How to escape os.system() calls? 10个我有兴趣在Python3.x中转义字符串,例如:SOME_MACRO(a, b)成…SOME_MACRO\(a,\ b\)…这样它就可以作为定义传递给程序(在本例中不是gcc), 例如,some_program -DSOME_MACRO\(a,\ b\)="some expression"我希望shlex有这个功能,但我没有找到如何做到这一点并检查了许多类似的问题. 我不介意写一些简单的函数来做到这一点,但这似乎是Python所包...

无法在Linux中的python命令行中编辑行【代码】

我在Linux下运行Python CLI:bla:visualization> python Python 2.1.1 (#18, Nov 1 2001, 11:15:13) [GCC egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)] on linux2 Type "copyright", "credits" or "license" for more information. >>> 由于某种原因,箭头键和删除键不起作用: 删除:>>> x^H^H^H向上箭头:>>> x^[[A^[[A等等… 我怎样才能做这些工作?解决方法:基本问题是您的Python安装很可能没有使用readline库编译.您可...

python – 有没有办法捕获结构输出的shell命令集合?【代码】

我收集了一些fab文件,用于管理服务器,为客户端安装应用程序等.当我将安装文档作为fabfile和自述文件提供时,其中一些人并不高兴.通常有经验丰富的系统管理员,而不是python程序员.如果我可以给他们一个bash脚本,这是一个记录各种fabfiles做了什么,那将是伟大的.有谁知道最好的方法吗? 我不需要帮助手动将fab命令转换为bash.我正在寻找一种程序化的方法来捕获命令流,无论是来自paramiko还是Fabric还是远程主机本身.解决方法:你写了:...

Java / C/C++ / Python / shell中命令行参数的解析器

我正在寻找一个库来解析命令行参数,这些参数在Java,C/C++,Python和(最好)shell中都是相同的. “相同”我的意思是(1)具有完全相同的规则来解析所有三种语言中的参数,(2)使用相同的配置文件或具有类似的API来指定参数,(3)具有类似的API来访问参数值. 我总是在Java中使用C和Apache CLI中的getopt,但是对于跨多种语言的参数使用相同的规范会很好.解决方法:getopt也可以在Python和shell中使用. Python有argparse模块,它更容易使用(特别是...

Python模拟Linux“文件”命令【代码】

参见英文答案 > Is there a python-equivalent of the unix “file” utility? 1个我正在寻找用Python制作的文件linux命令模拟.它应该提供有关文件类型的信息,如man文件中所述.我正在寻找的最小特征集是确定文件是原始文件还是文本(人类可读)文件.包装库将是一个很好的建议.我知道,我可以将文件作为子进程运行并抓住它的输出来确定文件类型.但我的程序应该解析成千上万的文件,在这种情况下我害...

关闭python命令子进程【代码】

我希望在关闭子进程后继续执行命令.我有以下代码但fsutil未执行.我该怎么做?import os from subprocess import Popen, PIPE, STDOUTos.system('mkdir c:\\temp\\vhd') p = Popen( ["diskpart"], stdin=PIPE, stdout=PIPE ) p.stdin.write("create vdisk file=c:\\temp\\vhd\\test.vhd maximum=2000 type=expandable\n") p.stdin.write("attach vdisk\n") p.stdin.write("create partition primary size=10\n") p.stdin.write("for...

Python检测linux关闭并在关闭之前运行命令【代码】

是否可以检测并中断linux(Ubuntu 16.04)关机信号(例如电源按钮被点击或电池耗尽).我有一个总是录制视频的python应用程序,我想检测这样的信号,所以我在操作系统关闭之前正确关闭录制.解决方法:当linux关闭时,所有进程都会收到SIGTERM,如果它们在超时后不会终止,则会被SIGKILL杀死.您可以使用signal模块实现信号处理程序以正确关闭应用程序. systemd(与早期Ubuntu版本中的暴发户相反)在关机时另外发送SIGHUP. 为了确认这实际上有效,我...

从python子进程获取输出并给出命令【代码】

我试图从子进程获取输出,然后根据前面的输出给该进程命令.当程序需要进一步输入时,我需要多次执行此操作. (如果可能的话,我还需要能够隐藏子进程命令提示符). 我认为这将是一个简单的任务,因为我已经看到这个问题正在2003年的帖子中讨论,并且它将近2012年,它似乎是一个非常普遍的需求,看起来它应该是任何编程语言的基本部分.显然我错了,不知何故,差不多9年后,仍然没有以稳定,非破坏性,独立于平台的方式完成这项任务的标准方法! 我...

python – 什么时候’命令’比’popen’子进程更可取?【代码】

我在没有上学的情况下学习系统管理,所以有时我会错过许多其他人的基本信息. 我试图在打印之前给我的stdout行另一个参数,但是我不确定我应该使用哪个进程,并且我对子进程的命令有点模糊,如果这是我应该使用的. 我目前的代码是:f = open('filelist', 'r') searchterm = f.readline() f.close()| #takes line from a separate file and gives it definition so that it may be callable.import commands commands.getoutput('print m...

在linux中使用python创建一个像pstree命令的进程树【代码】

我是python的新手.我想编写一个在stdout上输出树状图形的程序.我理想的输出是:0 |__0 |__4 | |__360 | |__1000 272 |__3460我收集的数据如下:0 : [0, 4] 4 : [360] 272 : [3460] 368 : [4184] 472 : [504, 576, 7016] 568 : [584, 640] 576 : [664, 672] 640 : [1048] 664 : [368, 372, 512, 788] 788 : [2120, 2720, 2976, 2996, 3956, 3980]左列是父进程id,右列是子进程id....

python – 获取使用fabric run命令启动的进程的PID【代码】

如何获取fabric run命令启动的进程的PID.我想跟踪PID,以防我想要杀死进程.有没有更好的方法来处理这种情况?解决方法:这应该有效,因为运行命令打开的shell在运行命令的echo部分时仍然打开:run("mycommand & echo $!")

从PHP / Java / Python Web应用程序调用shell命令(包括那些需要root权限的命令)的正确方法是什么?

我期待开发一个远程系统管理Web应用程序(例如Webmin).显然,我需要调用shell命令来执行root或其他特定的非nobody用户发出的命令. 这项任务的一般准则是什么? 我现在想到的唯一解决方案是在特殊端口上运行Web服务器,该端口只能由本地和VPN连接的用户访问(通过防火墙).但也许有一些特殊的技巧可以保护这样的应用程序,即使它暴露在公共网络上?解决方法:由于我们讨论的是用于控制本机任务的Web应用程序,因此您需要考虑几个方面(至少对...

【Python】linux系统more基本命令python源码分享【代码】

此python源码是linux系统more基本命令的实现。 实现linux中more的基本功能,当more后加一个文件名参数时候,分屏显示按空格换页,按回车换行’,在左下角显示百分比; 以处理管道参数的输入,处理选项+num:从指定行开始显示,+/string :查找字符串,从指定字符串之后开始显示 运行环境:安装有PYTHON的linux系统 调用示例: more.py [+num ] [+/pattern] filename command|./more.py [+num ] [+/pattern] more.p --help 输出帮助信息...

从python运行命令行并从内存管道参数【代码】

我想知道是否有办法在python中运行命令行可执行文件,但是从内存中传递参数值,而不必将内存数据写入磁盘上的临时文件.从我所看到的,似乎subprocess.Popen(args)是从python脚本中运行程序的首选方式. 例如,我在内存中有一个pdf文件.我想使用大多数Linux发行版中的命令行函数pdftotext将其转换为文本.但我不希望将内存中的pdf文件写入磁盘上的临时文件.pdfInMemory = myPdfReader.read() convertedText = subprocess.<method>(['pdfto...