广告
返回顶部
首页 > 资讯 > 操作系统 >怎么远程执行Linux脚本和命令
  • 143
分享到

怎么远程执行Linux脚本和命令

2023-06-03 17:06:23 143人浏览 安东尼
摘要

这篇文章主要介绍“怎么远程执行linux脚本和命令”,在日常操作中,相信很多人在怎么远程执行Linux脚本和命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么远程执行Linux脚本和命令”的疑惑有所帮助!

这篇文章主要介绍“怎么远程执行linux脚本和命令”,在日常操作中,相信很多人在怎么远程执行Linux脚本和命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么远程执行Linux脚本和命令”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

如果现在需要在 Linux 服务器上执行一系列命令(比如搭建 LNMP 环境)我应该会第一时间想到想办法写个 shell 脚本,然后扔上去执行以下看看结果。

然而一贯懒惰的我并不想这么去执行 Shell 和一些重复命令。所以俺寻思可以有个方法本地直接在服务器端执行脚本,寻思生异端,这时候有某大技霸告诉我有个叫 paramiko 的 python 库,从此开启我新世界的大门。

对于 paramiko 安装直接 pip 或者 PyCharm 这里就不多说了,如果看到这里你觉得自己不怎么了解Python语法的也不必担心,你完全可以用 paramiko 单纯的执行 Shell 命令查看结果和上传下载文件,省去重复的工作。

paramiko 实现了 sshv2 协议(底层使用 cryptography ),包含两个核心组件:SSHClient 和 SFTPClient 。 SSHClient 是对 SSH 会话的封装,用于执行远程命令,SFTPClient 是对 SFTP 客户端的封装,用以实现远程文件操作。

这里先举两个列子你应该就明白怎么用了,终于开始正片了。

SSHClient 的列子:

# -*- coding: utf-8 -*-
import paramiko
client = paramiko.SSHClient()# 实例化SSHClient
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 自动添加策略,保存服务器的主机名和密钥信息,如果不添加,那么不再本地know_hosts文件中记录的主机将无法连接

client.connect(hostname='192.168.23.134', port=22, username='ftoz', passWord='123456')# 连接SSH服务端,以用户名和密码进行认证

# 打开一个Channel并执行命令
stdin, stdout, stderr = client.exec_command('ls')  # stdout 为正确输出,stderr为错误输出,同时是有1个变量有值

# 打印执行结果
print(stdout.read().decode('utf-8'))

# 关闭SSHClient
client.close()

输出:

怎么远程执行Linux脚本和命令

这里说明一下:

client = paramiko.SSHClient(),
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())你可以理解为固定姿势。
client.connect(hostname='192.168.1.105', port=22, username='ftoz',password='123456')这里就是你的linux变量依次为地址、端口(总共65535个端口,不过ssh默认是22端口)、登录名、密码。
stdin, stdout, stderr = client.exec_command('df -h ') 这里就是核心你需要做的shell命令,这三个变量不用按照这种姿势,你可以随意,不过按照顺序你知道里面装的什么数据就行(重点在输出和错误)。

connect():这个是实现远程服务器连接和认证的,参数有:
hostname 连接的目标主机
port=SSH_PORT 指定端口
username=None 验证的用户名
password=None 验证的用户密码
pkey=None 私钥方式用于身份验证
key_filename=None 一个文件名或文件列表,指定私钥文件
timeout=None 可选的tcp连接超时时间
allow_agent=True, 是否允许连接到ssh代理,默认为True 允许
look_for_keys=True 是否在~/.ssh中搜索私钥文件,默认为True 允许
compress=False, 是否打开压缩。

set_missing_host_key_policy():这个是设置远程服务器没有在know_hosts文件中记录时的应对策略。(可以理解为避免报错),参数有:
AutoAddPolicy 自动添加主机名及主机密钥到本地HosTKEys对象,不依赖load_system_host_key的配置。即新建立ssh连接时不需要再输入yes或no进行确认
WarningPolicy 用于记录一个未知的主机密钥的python警告。并接受,功能上和AutoAddPolicy类似,但是会提示是新连接
RejectPolicy 自动拒绝未知的主机名和密钥,依赖load_system_host_key的配置。此为默认选项
exec_command():这是写你需要执行的命令的

接下来你就可以拿出输出做一些该干嘛(ke)干嘛(pa)的事情了,这里先举这个简单的列子。

SFTPClient 常用方法:

t = paramiko.Transport(('192.168.23.134', 22))# 获取Transport实例
t.connect(username='ftoz', password='123456')# 连接SSH服务端,使用password
sftp = paramiko.SFTPClient.from_transport(t)
sftp.put("F:\S12312.txt","/home/ftoz/zxc12312.txt")#执行上传动作
sftp.get("/home/ftoz/zxc12312.txt", "F:\S12312.txt")#执行下载动作
t.close()

SFTPCLient 作为一个 sftp 的客户端对象,根据 ssh 传输协议的 sftp 会话,实现远程文件操作,如上传、下载、权限、状态

from_transport(cls,t) 创建一个已连通的SFTP客户端通道
put(localpath, remotepath, callback=None, confirm=True) 将本地文件上传到服务器 参数confirm:是否调用stat()方法检查文件状态,返回ls -l的结果
get(remotepath, localpath, callback=None) 从服务器下载文件到本地
mkdir() 在服务器上创建目录
remove() 在服务器上删除目录
rename() 在服务器上重命名目录
stat() 查看服务器文件状态
listdir() 列出服务器目录下的文件

最后养成随关闭的好习惯 client.close()。

到此,关于“怎么远程执行Linux脚本和命令”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 怎么远程执行Linux脚本和命令

本文链接: https://www.lsjlt.com/news/235051.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么远程执行Linux脚本和命令
    这篇文章主要介绍“怎么远程执行Linux脚本和命令”,在日常操作中,相信很多人在怎么远程执行Linux脚本和命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么远程执行Linux脚本和命令”的疑惑有所帮助!...
    99+
    2023-06-03
  • 如何远程执行Linux脚本和命令
    小编给大家分享一下如何远程执行Linux脚本和命令,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!对于 paramiko 安装直接 pip 或者 PyCharm 这...
    99+
    2023-06-16
  • shell中使用expect命令进行远程执行命令脚本
    expect是用来实现自动交互功能的工具之一,使用expect-send来实现交互过程。 注意: 1、脚本的执行方法与bash shell不一样,比如:expect example.sh 2、向一个脚本传递参数时,bas...
    99+
    2022-06-04
    用expect进行远程执行命令 shell中使用expect命令进行远程执行命令脚本
  • java怎么远程执行linux命令
    可以使用Java中的ProcessBuilder类来远程执行Linux命令。下面是一个简单的示例代码:```javaimport j...
    99+
    2023-09-29
    java linux
  • python脚本实现本地或远程执行命令
    功能:1、执行本地shell命令,执行完成后获取结果2、执行本地shell命令,执行中实时获取输出结果3、执行远程shell命令,执行完成后获取结果4、执行远程shell命令,执行中实时获取输出结果 实际操作:1、安装paramiko ...
    99+
    2023-01-31
    脚本 命令 python
  • ssh远程执行命令方法和Shell脚本实例
    写这篇博客之前,我google了一堆相关文章,大都是说修改/etc/sudoers,然后NOPASSWD:指定的cmd,但是真心不管用,没有远程虚拟终端这个方法就是浮云,ubuntu10.04 server...
    99+
    2022-06-04
    脚本 实例 命令
  • CentOS使用expect批量远程执行脚本和命令
    我们有时可能会批量去操作服务器,比如批量在服务器上上传某个文件,安装软件,执行某个命令和脚本,重启服务,重启服务器等,如果人工去一台台操作的话会特别繁琐,并浪费人力。 这时我们可以使用expect,向目标服务器上发送指令...
    99+
    2022-06-04
    CentOS expect 远程执行 脚本 命令
  • 怎么用命令执行Shell脚本
    本篇内容主要讲解“怎么用命令执行Shell脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用命令执行Shell脚本”吧!假设这个 shell 脚本的名称为 tinyshell.sh。在 L...
    99+
    2023-06-09
  • 有哪些ssh远程执行命令方法和Shell脚本
    本篇内容主要讲解“有哪些ssh远程执行命令方法和Shell脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些ssh远程执行命令方法和Shell脚本”吧!ssh执行远程操作命令格式代码如下:...
    99+
    2023-06-09
  • 如何在shell中使用expect命令进行远程执行命令脚本
    如何在shell中使用expect命令进行远程执行命令脚本?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。expect是用来实现自动交互功能的工具之一,使用expect-send...
    99+
    2023-06-09
  • 怎么在shell脚本中执行hive和sqoop命令
    这篇文章将为大家详细讲解有关怎么在shell脚本中执行hive和sqoop命令,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、test.sh脚本内容如下:#!/bin/bash#CURR_...
    99+
    2023-06-09
  • 如何在linux上定期执行命令、脚本
    今天就跟大家聊聊有关如何在linux上定期执行命令、脚本,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。人类把时间做了切割,想象一条笔直的线永远向前,本来这条直线上什么都没有,但是人类...
    99+
    2023-06-28
  • linux怎么在重启或启动时执行命令或脚本
    这篇文章主要为大家展示了“linux怎么在重启或启动时执行命令或脚本”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux怎么在重启或启动时执行命令或脚本”这篇文章吧。方法 1:如何使用 /e...
    99+
    2023-06-16
  • Python远程linux执行命令实现
    1、远程登录到linux上,使用到的模块paramiko #远程登陆操作系统 def ssh(sys_ip,username,password,cmds): try #创建ssh客户端 clien...
    99+
    2022-06-04
    Python远程linux执行命令 Python linux远程命令
  • 在linux上定期执行命令、脚本(cron,crontab,anacron)
    人类把时间做了切割,想象一条笔直的线永远向前,本来这条直线上什么都没有,但是人类根据时间的长短(单位)在这条直线上做了密密麻麻的标记(世纪-年-月-日-时-分-秒-纳秒......),通过这样的方式历史上的每一个时刻都能...
    99+
    2022-06-04
    linux 定期执行命令 linux cron crontab anacron
  • JSch怎么远程执行Shell命令
    这篇文章主要介绍了JSch怎么远程执行Shell命令,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。JS是什么JS是JavaScript的简称,它是一种直译式的脚本语言,其解释...
    99+
    2023-06-14
  • Saltstack远程执行命令怎么用
    这篇文章给大家分享的是有关Saltstack远程执行命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。命令命令格式:salt '<操作目标>' <方法&...
    99+
    2023-06-05
  • 使用hbase-shell命令怎么批量执行脚本
    今天就跟大家聊聊有关使用hbase-shell命令怎么批量执行脚本,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。批量执行hbase shell 命令#!/bin/bash ...
    99+
    2023-06-09
  • 使用Spark-shell怎么批量命令执行脚本
    这篇文章给大家介绍使用Spark-shell怎么批量命令执行脚本,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。批量执行spark-shell命令,并指定提交参数#!/bin/bashsource /etc/p...
    99+
    2023-06-09
  • 使用hive-shell命令怎么批量执行脚本
    使用hive-shell命令怎么批量执行脚本?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。如下所示:#!/usr/bin/bashHADOOP_HOME=&qu...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作