如何远程执行Linux脚本和命令
发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,小编给大家分享一下如何远程执行Linux脚本和命令,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!对于 paramiko 安
千家信息网最后更新 2024年11月24日如何远程执行Linux脚本和命令
小编给大家分享一下如何远程执行Linux脚本和命令,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
对于 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()
输出:
这里说明一下:
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() 列出服务器目录下的文件
以上是"如何远程执行Linux脚本和命令"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
文件
服务
服务器
命令
主机
输出
密钥
目录
端口
参数
变量
客户
密码
状态
用户
篇文章
结果
列子
验证
脚本
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
华为软件开发规范最新正式版
网络安全竞赛怎么准备
导出数据库
前端上传图片存储到数据库
深圳市易网网络技术有限公司
阿里云服务器 固定ip
数据库服务未启动且不在本机
电脑登录服务器地址不正
wns服务器没有响应
外文数据库采购
测试软件开发培训排行榜
络町网络技术
软件开发和信息安全工程师
azure服务器购买指南
成都苹果软件开发收费多少
至高之战文件服务器出现问题
海淀区节能软件开发咨询报价
葫芦岛公安局网络安全
部落冲突什么服务器
服务器硬盘永久挂载
空数据库的定义
山海关区委网络安全
四川进口软件代理服务器
从事网络安全方面的工作
内蒙古电子软件开发诚信服务
读软件开发专科什么学校好
吃鸡服务器什么时候维护好
数据库硬解析怎么改
威纶通触屏数据库用户
华阴dell服务器