前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python执行或远程执行shell命令

Python执行或远程执行shell命令

作者头像
宋天伦
发布2020-10-28 17:50:24
7.2K0
发布2020-10-28 17:50:24
举报
文章被收录于专栏:frytea

最近想要实现通过脚本循环再Linux下运行shell命令,经过探索发现使用Python语言有几种解决方案,在此简单记录。

方案一:脚本本地执行命令

在Python中有两个库都可以实现运行shell命令的效果:

代码语言:javascript
复制
import subprocess
import os

使用方法也很简单:

代码语言:javascript
复制
# subprocess 使用方法
subprocess.call("ls") # 执行ls命令

# os 使用方法
# 使用system模块执行linux命令时,如果执行的命令没有返回值res的值是256
# 如果执行的命令有返回值且成功执行,返回值是0
res = os.system("ls")
# popen模块执行linux命令。返回值是类文件对象,获取结果要采用read()或者readlines()
val = os.popen('ls').read() # 执行结果包含在val中

方案二:脚本远程执行命令

在 Python 中有一个库可以实现SSH客户端及SFTP的功能。

代码语言:javascript
复制
#!/usr/bin/python
import paramiko

使用方法大致如下:

代码语言:javascript
复制
# 连接方法
def ssh_connect( _host, _username, _password ):
    try:
        _ssh_fd = paramiko.SSHClient()
        _ssh_fd.set_missing_host_key_policy( paramiko.AutoAddPolicy() )
        _ssh_fd.connect( _host, username = _username, password = _password )
    except Exception, e:
        print( 'ssh %s@%s: %s' % (_username, _host, e) )
        exit()
    return _ssh_fd

# 运行命令
def ssh_exec_cmd( _ssh_fd, _cmd ):
    return _ssh_fd.exec_command( _cmd )

# 关闭SSH
def ssh_close( _ssh_fd ):
    _ssh_fd.close()

方案三:使用SecureCRT脚本

该方法参见此前的博文:SecureCRT 下 Python 脚本编写

参考文献

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方案一:脚本本地执行命令
  • 方案二:脚本远程执行命令
  • 方案三:使用SecureCRT脚本
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档