python操作linux命令_linux python操作linux命令 获取结果 - CSDN
精华内容
参与话题
  • python操作linux cmd命令

    千次阅读 2018-05-15 10:16:30
    我们在操作linux命令的时候,选择subprocess 看看他的api都能干些啥 subprocess.call(command) 可以用于执行一个外部命令,但该方法不能返回执行的结果,只能返回执行的状态码: 成功(0) 或 错误(非0) call()...
    • 我们在操作linux命令的时候,选择subprocess
    • 看看他的api都能干些啥

      • subprocess.call(command) 可以用于执行一个外部命令,但该方法不能返回执行的结果,只能返回执行的状态码: 成功(0) 或 错误(非0)
        call()方法中的command可以是一个列表,也可以是一个字符串,作为字符串时需要用原生的shell来执行:

        >>> subprocess.call(['ls','-l'])
        total 8
        drwxrwxr-x 4 ws ws 4096 Nov 25 13:50 MonitorSystem
        drwxrwxr-x 2 ws ws 4096 Feb 19 10:09 tmp
      • subprocess.check_call() 方法
        我们说过call执行返回一个状态码,我们可以通过check_call()函数来检测命令的执行结果,如果不成功将返回 subprocess.CalledProcessError 异常

        >>> try:
                subprocess.check_call("ls -t", shell=True)
            except subprocess.CalledProcessError as err:
                print("Command Error") 
        
        /bin/sh: lt: command not found
        Command Error
      • subprocess.check_output() 方法
        call()方法启动的进程,其标准输入输出会绑定到父进程的输入和输出。调用程序无法获取命令的输出结果。但可以通过check_output()方法来捕获输出。

        >>> output=subprocess.check_output("ls -l",shell=True)
        >>> output
        b'total 8\ndrwxrwxr-x 4 ws ws 4096 Nov 25 13:50 MonitorSystem\ndrwxrwxr-x 2 ws ws 4096 Feb 19 10:09 tmp\n'
        >>> print(output.decode('utf-8'))
        total 8
        drwxrwxr-x 4 ws ws 4096 Nov 25 13:50 MonitorSystem
        drwxrwxr-x 2 ws ws 4096 Feb 19 10:09 tmp
    展开全文
  • python如何连接linux,执行linux命令

    千次阅读 2019-04-04 11:30:41
    import paramiko from pymysql import connect,cursors try: # 建立一个sshclient对象 ssh = paramiko.SSHClient() # 允许将信任的主机自动加入到host_allow 列表,此方法必须放在connect方法的前面 ...
    import  paramiko
    from pymysql import connect,cursors
    try:
        # 建立一个sshclient对象
        ssh = paramiko.SSHClient()
        # 允许将信任的主机自动加入到host_allow 列表,此方法必须放在connect方法的前面
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        # 调用connect方法连接服务器
        ssh.connect(hostname='****', port=51155, username='fengyanfang', password='*****')
        # 执行命令
        stdin, stdout, stderr = ssh.exec_command('ssh *****;')
        print('进入hive')
       
    
    
        # 结果放到stdout中,如果有错误将放到stderr中
        print(stdout.read().decode())
        # 关闭连接
        ssh.close()
    except Exception as e:
        print(e)
    展开全文
  • python中使用linux命令

    千次阅读 2019-05-13 15:21:54
    python自动化运维,当然指的是用python语言调用linux命令的一个过程,本文先以最为简单的方式,给大家展示一下基本的过程 场景:执行python命令,使tomcat服务一直在线 首先,我们需要知道的是,监测tomcat在线的...

    python自动化运维,当然指的是用python语言调用linux命令的一个过程,本文先以最为简单的方式,给大家展示一下基本的过程

    场景:执行python命令,使tomcat服务一直在线

    首先,我们需要知道的是,监测tomcat在线的方式有很多,我们以8080端口在线为准,监视tomcat的服务情况

    [root@localhost proc]# ss -ntl | grep 8080
    LISTEN     0      100         :::8080                    :::* 

    访问网址存在

    首先,我们需要知道,tomcat挂掉的情况之一是8080端口不在

    在此模拟tomcat挂掉的情况

    [root@localhost bin]# ./shutdown.sh 
    Using CATALINA_BASE:   /usr/local/apache-tomcat-8.5.35
    Using CATALINA_HOME:   /usr/local/apache-tomcat-8.5.35
    Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.35/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/local/apache-tomcat-8.5.35/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.35/bin/tomcat-juli.jar
    [root@localhost bin]# ss -ntl | grep 8080
    
    [root@localhost bin]#

    在tomcat挂掉之后,执行“ss -ntl | grep 8080”没有任何端口显示(模拟线上服务挂掉)

    此时,我们需要重启tomcat服务

    [root@localhost bin]# ./startup.sh 
    Using CATALINA_BASE:   /usr/local/apache-tomcat-8.5.35
    Using CATALINA_HOME:   /usr/local/apache-tomcat-8.5.35
    Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.35/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/local/apache-tomcat-8.5.35/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.35/bin/tomcat-juli.jar
    Tomcat started.
    [root@localhost bin]# ss -ntl | grep 8080
    LISTEN     0      100         :::8080                    :::* 

    执行后,tomcat服务端口在线,tomcat服务重启成功


    上面过程就是我们手动维护的tomcat服务器的过程,这个过程虽然简单,但是,基本就是线上环境的会面临的问题,唯一的问题是线上环境可能存在着更多的不确定因素,本文不展开叙述。

    那么上述服务从挂掉到启动,实则是一个对8080端口监听的过程分析。

    现在我们以python来解决问题。(shell脚本也可以,不过不是本文重点)

    需要使用到的命令

    [root@localhost bin]# ss -ntl | grep 8080
    [root@localhost bin]# ./startup.sh 
    

    逻辑:

    1:检测8080端口,存在,无任何操作

    2:检测8080端口,不存在,执行start.sh命令

    python中调用命令的方法是 os.system(‘命令’)

    代码如下:

    import os    #在python中使用shell命令
    result = os.system('ss -ntl | grep 8080')#判断命令是否执行成功,正确返回0
    if(result==0):
        print('服务存在!')
    else:
        print('服务不存在')
        os.system('/usr/local/apache-tomcat-8.5.35/bin/startup.sh')#在脚本和程序中使用绝对路径能减少很多新手错误
    
    [root@localhost python]# ll
    总用量 4
    -rw-r--r-- 1 root root 269 5月  13 14:49 tomcat服务监控.py
    [root@localhost python]# chmod +x tomcat服务监控.py 
    [root@localhost python]# ll
    总用量 4
    -rwxr-xr-x 1 root root 269 5月  13 14:49 tomcat服务监控.py
    [root@localhost python]# cat tomcat服务监控.py 
    import os
    result = os.system('ss -ntl | grep 8080')
    if(result==0):
        print('服务存在!')
    else:
        print('服务不存在')
        os.system('/usr/local/apache-tomcat-8.5.35/bin/startup.sh')#在脚本和程序中使用绝对路径能减少很多新手错误
    

    配置相应的权限


    到上面为止,基本上一个python代码过程的分析已经完成

    开始测试python代码

    情况一:服务在线

    [root@localhost python]# ss -ntl | grep 8080
    LISTEN     0      100         :::8080                    :::*                  
    [root@localhost python]# python3 tomcat服务监控.py 
    LISTEN     0      100         :::8080                    :::*                  
    服务存在!
    

    情况二:服务不存在

    [root@localhost python]# ss -ntl | grep 8080
    [root@localhost python]# python3 tomcat服务监控.py 
    服务不存在
    Using CATALINA_BASE:   /usr/local/apache-tomcat-8.5.35
    Using CATALINA_HOME:   /usr/local/apache-tomcat-8.5.35
    Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.35/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/local/apache-tomcat-8.5.35/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.35/bin/tomcat-juli.jar
    Tomcat started.
    [root@localhost python]# ss -ntl | grep 8080
    LISTEN     0      100         :::8080                    :::* 

    python已经成功的重启服务


    到此,我们只需要调用python代码就可以重启服务,接下来就是实现一个基本的运维过程(毕竟人为监控显然不符合急速发展的it行业!emmmm....也许,或许....吧,哈哈哈哈!)

    将上述python过程加入crontab中实现,每1min调用

    [root@localhost ~]# crontab -l
    */1 * * * * /usr/bin/python3 /root/python/tomcat服务监控.py
    

    现在,你已经成功实现了每1min就检查一次tomcat服务过程(也就是说,服务也就挂掉1min就会重启,当然,真正的线上环境情况复杂的多,本文大家可以先了解一下线上生产环境过程)

    完!

    展开全文
  • 此代码可实现Windows下连接SSH,并操作linux命令行,实现各种操作,包括程序执行输入等。想获得更多操作流程可以留言,我定全力解答。
  • Linux下安装Python

    万次阅读 多人点赞 2018-07-15 16:34:17
    目录一、Linux下安装Python二、LinuxPython安装完成后如何使用pip命令三、LinuxPython安装完成后如何使用yum命令四、Linux下安装Anaconda五、Linux下使用anaconda安装Keras一般的Linux上都有默认的Python版本,...

    目录

    一、Linux下安装Python

    二、Linux下Python安装完成后如何使用pip命令

    三、Linux下Python安装完成后如何使用yum命令

    四、Linux下安装Anaconda

    五、Linux下使用anaconda安装Keras


    一般的Linux上都有默认的Python版本,CentOS6.5默认的Python版本的2.6.6的,因为工作原因,这里需要用到Python3.6.3的版本,在这里,小编将会一步步的教大家进行再Linux下Python3的安装。


    一、安装之前查看自带的Python的版本



    二、上传并解压Python3.6.3



    三、python安装之前需要一些必要的模块,比如openssl,readline等,如果没有这些模块后来使用会出现一些问题,比如没有openssl则不支持ssl相关的功能,并且pip3在安装模块的时候会直接报错。至于需要什么模块在make完之后python会给出提示,通过提示进行安装即可装全,下面是需要提前预装的依赖,装完这些依赖,python基本上便可以安装成功了:(注意,需要提前切换至root用户下

    yum -y install zlib zlib-devel
    yum -y install bzip2 bzip2-devel
    yum -y install ncurses ncurses-devel
    yum -y install readline readline-devel
    yum -y install openssl openssl-devel
    yum -y install openssl-static
    yum -y install xz lzma xz-devel
    yum -y install sqlite sqlite-devel
    yum -y install gdbm gdbm-devel
    yum -y install tk tk-devel
    yum install gcc


    四、接下来就是安装我们的Python3.6.3了

    首先先切换到我们之前解压的Python3.6.3的目录下


    然后进行configure操作


    最后进行make和make install操作


    没有报错,说明安装成功。值得注意的是,Python3.6.3自带了pip和setuptools,至于如何配置pip进行Python扩展包的下载,我们下一篇博客介绍。


    五、Python3.6.3安装成功之后,检查python的版本发现还是之前的2.6.6版本的


    此时,我们需要创建咱们新版本(3.6.3)的软链接

    首先切换到root用户下


    旧版本的软链接可以不用删除,改个名字即可,然后创建新版本的软链接


    最后我们再次切换到普通用户下,查看Python的版本,发现已经是我们最新安装的3.6.3的版本了。


    至此,Python3.6.3的安装就已经完成了。


    你们在此过程中还遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题。

    展开全文
  • 我们使用Python如何调用Linux的Shell命令: 如在linux系统下,直接import os 模块即可下面介绍下如何在windows下使用python远程调用Sehll1.登录到远程linux服务器需要导入模块import paramiko2.定义函数,登录操作...
  • 在运维工作中,我们经常使用 ssh 工具远程登陆主机来执行命令,对...概述功能:实现同时对多台linux服务器通过ssh执行同一命令。技术基础: python pexpect paramiko等模块,部支持windows。参数:固定参数pwd:远程...
  • 这里我不想采用诸如ubuntu下的apt-get install方式进行python的安装,而是在linux下采用源码包的方式进行python的安装。   一、下载python源码包 打开ubuntu下的shell终端,通过wget命令下载python源码包,如下...
  • Linux下切换Python版本

    万次阅读 2017-11-01 11:34:39
    这两天遇到一个问题需要在 python3 的环境下进行测试,由于Linux默认已经安装了Python2.7,并且作者一直也在使用 ,所以需要重新安装并临时切换到 python3。 在网上查到很多资料,但是每一篇都讲的不全,需要结合...
  • python脚本中执行Linux命令行

    千次阅读 2019-06-20 08:44:26
    常用模块 import os import subprocess os.system('free -h') subprocess.call('top')
  • 老师说:学Python一定要掌握Linux

    万次阅读 2019-03-11 16:42:05
    Python不是支持Windows和Linux操作系统吗?能在Windows下开发为什么还要学习Linux? 问这样的问题的朋友,可能还没有真正入行Python开发或者没有真正参与公司的一些项目部署,上线过程,对于上面问题,首选答案是...
  • python3执行linux命令

    千次阅读 2017-08-31 09:47:17
    本文主要实现在linux环境下通过python3执行linux命令
  • linux下查看python已经安装的模块

    万次阅读 2018-05-06 10:38:14
    一、命令行下使用pydoc命令 在命令行下运行$ pydoc modules即可查看二、在python交互解释器中使用help()查看 python--->在交互式解释器中输入>>> help("modules")即可,...
  • linux终端(terminal)中执行python文件

    万次阅读 多人点赞 2017-03-06 09:48:58
    linux终端(terminal)中执行python文件
  • python2.7和pip在linux下的安装详解

    万次阅读 多人点赞 2015-08-08 18:25:46
    1,安装python2.7安装包。 从官网下载python2.7.6的安装包。 https://www.python.org/download/releases/2.7.6...(1) ./configure --prefix=/usr/local/pyton2.7(这里...(2)执行make命令操作 对源码进行编译。
  • Linux终端中的操作均是使用命令行来进行的。因此,对于小白来说,熟记几个基本的命令行和使用方法能够较快的在Linux命令行环境中将python用起来。
  • Linux终端中的操作均是使用命令行来进行的。因此,对于小白来说,熟记几个基本的命令行和使用方法能够较快的在Linux命令行环境中将python用起来。 打开命令行窗口 打开命令行窗口的快捷键如下: Ctrl + Alt + t 关闭...
  • Linux下创建python脚本并运行

    千次阅读 2018-01-17 22:40:37
    为了避免环境的来回切换,所以决定在Linux环境下编python程序 1、首先定位到文件夹,然后使用vim编辑器:vim numpy_torch.py 就创建了python脚本文件,并且进入编辑状态 2、编辑好之后按Esc切换到命令模式,...
  • Linux中搭建Python环境

    万次阅读 2018-10-13 21:32:15
    我们知道Linux是为编程所设计,因此很多的Linux中默认安装了Python,所以为了确定你的Linux中是否已安装Python,首先需要检查Python版本。搭建Python环境步骤如下: 1、检查Python版本  1)在你的系统中打开终端...
  • python中,运行Linux命令,运行正确获取运行结果,运行错误获取错误提示 subprocess模块—Popen command = "ping -c 1 baidu.com " back = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE,stderr=...
1 2 3 4 5 ... 20
收藏数 147,995
精华内容 59,198
关键字:

python操作linux命令