首页
python
Win桌面应用自动化pywinauto
pywinauto遍历展示程序的所有菜单项
Python3使用串口
Python字符串处理
Python3实现配置文件差异对比(键值对key=value的形式)
正则
正则匹配两个字符之间的字符串
正则提取markdown中图片链接
正则表达式基本知识
字符串-正则实例
Python生成8位随机字符串的一些方法
python3批量ping检测
python3检测一批主机ip的tcp端口
Python3--DNS
3D人体骨架检测(mediapipe)
Python-网络
检测到win电脑断网就发出告警声音
Python编写的DNS服务可靠性测试程序
Python编写的TCP/UDP端口探测程序
Python抓包-Pyshark
并发扫描TCP、UDP端口
Python-DHCP
端口的问题以及绑定端口(Python)
VSCode编辑器
python远程开机工具
Pyhton3--Win注册表
开源IT运维项目
python知识点
Python开源运维项目集合
python3备份交换机配置
Python3使用snmp获取H3C交换机arp表
Python检测tcp端口状态并发送到企微群
Python3使用smtp发邮件
Python3使用smtp发邮件(带附件)
Python3拉取微软AD域所有用户信息
Python3使用微软AD域账号认证
自动更新公网域名的解析(阿里云)
每日定时推送Excel中排班表信息到企微群
Django
Django模板标签
Django在发送POST请求时返回403错误
Django-mysql数据库条件查询
uwsgi 配置 python virtualenv 虚拟环境目录 ( ini 配置)
常用收藏
python3数据类型转换
python处理文本
txt每行一个字符串_用英文逗号连接
txt_匹配并拆分出需要字符串
python获取日期时间
python执行linux命令的三种方式
python使用ssh连接到linux服务器执行命令
本文档由 内网文摘 发布,转载请注明出处
-
+
首页
python使用ssh连接到linux服务器执行命令
#### 环境 Win10+Python3使用SSH连接centos7多次执行 删除ocserv用户的命令 1.存储用户名的文件 del_vpn_user.txt,每行一个 ```shell cat del_vpn_user.txt zhangsan lisi ``` 2.待执行命令格式:ocpasswd -c /etc/ocserv/ocpasswd -d 用户名 3.示例 服务器地址、ssh端口、用户名、密码:host='192.168.1.1', port=22, username='root', pwd='localnetwork' #### python脚本 ```python #!/usr/bin/env python # -*- coding:utf-8 -*- import paramiko class SSHConnection(object): def __init__(self, host='192.168.1.1', port=22, username='root', pwd='localnetwork'): self.host = host self.port = port self.username = username self.pwd = pwd self.__k = None def run(self): errnum = 0 # 容错计数,避免网络不好时偶尔中断错误 self.connect() # 连接远程服务器 #self.upload('db.py','/tmp/1.py') # 将本地的db.py文件上传到远端服务器的/tmp/目录下并改名为1.py self.cmd('date') # 执行date 命令 ## ocpasswd -c /etc/ocserv/ocpasswd -d with open('del_vpn_user.txt', 'r', encoding='utf-8') as vf: for line in vf.readlines(): try: vpnuser = line.strip() self.cmd('ocpasswd -c /etc/ocserv/ocpasswd -d {vpnuser}'.format(vpnuser=vpnuser)) except: print("*vpndel" * 88) print(e) print(line) errnum += 1 print(errnum) if errnum <= 3: # 增加3次容错,避免网络不好时偶尔中断错误 self.connect() # 连接远程服务器 self.cmd('date') # 执行date 命令 vpnuser = line.strip() self.cmd('ocpasswd -c /etc/ocserv/ocpasswd -d {vpnuser}'.format(vpnuser=vpnuser)) self.close() # 关闭连接 def connect(self): transport = paramiko.Transport((self.host, self.port)) transport.connect(username=self.username, password=self.pwd) self.__transport = transport def close(self): self.__transport.close() def upload(self,local_path,target_path): sftp = paramiko.SFTPClient.from_transport(self.__transport) sftp.put(local_path,target_path) def cmd(self, command): ssh = paramiko.SSHClient() ssh._transport = self.__transport # 执行命令 print(command) stdin, stdout, stderr = ssh.exec_command(command) # 获取命令结果 result = stdout.read() print(result) return result obj = SSHConnection() obj.run() ```
local
2021年11月17日 18:10
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 LocalNetwork
LocalNetwork
是由mrdoc开源
LocalNetwork.cn
修改的在线文档系统,作为个人和小型团队的云笔记、文档和知识库管理工具。
如果此文档给你或你的团队带来了帮助,欢迎支持作者持续投入精力更新和维护!内网文摘 & LocalNetwork
>>>主页
logo
logo
下载Markdown文件
分享
链接
类型
密码
更新密码