python 实现远程主机执行命令函数

#!/usr/bin/python

# coding=utf-8

import os

import paramiko

\\定义 h_name 远程主机名 h_cmd 执行的命令

def remote_cmd(h_name,h_cmd):

sshadd = h_name

sshusr = ‘root‘

sshpwd = ‘YourPasswd‘


sshport = 22

sen1 = ‘export JAVA_HOME= YourJdkPath ;‘

sen2 = ‘命令1;‘

sen3 = ‘命令2;‘

num = ‘2‘ //命令数量

paramiko.util.log_to_file(‘ssh.txt‘)

ssh = paramiko.SSHClient()

known_host="/root/.ssh/known_hosts"

ssh.load_system_host_keys(known_host)

privatekeyfile = os.path.expanduser(‘/root/.ssh/id_rsa‘)

mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile,password=‘密钥密码‘)

ssh.connect(hostname = sshadd, username = sshusr, password = sshpwd, port = sshport)

stdin, stdout, stderr = ssh.exec_command(‘n=‘ + num + ‘;‘ + sen1 + sen2 + sen3 )

return stdout.read().strip(‘\n‘)

时间: 2024-07-29 15:30:08

python 实现远程主机执行命令函数的相关文章

PHP执行命令函数

目标:简单的学习几个PHP中执行命令函数. 1.exec() 函数 参考地址:https://www.php.net/manual/zh/function.exec.php (PHP 4, PHP 5, PHP 7) exec — 执行一个外部程序 格式:exec ( string $command [, array &$output [, int &$return_var ]] ) : string 该函数可执行系统命令,命令执行结果的最后一行内容. 如果你需要获取未经处理的全部输出数据

Python学习---远程执行命令

原则:发送一个接受一个 原理:发送执行命令的大小给客户端,客户端根据接受的大小判断是否全部接收了服务器sendall()发送的全部 利用send发送的全部数据都是bytes类型的,需要进行字符编码的转换,因为中文环境,所以需要转换GBK查看 客户端: # 客户端 import socket # family=AF_INET, 代表使用IPV4的IP协议 # type=SOCK_STREAM 代表使用TCP协议进行连接 client = socket.socket() ip_addr = ('12

python案例远程执行命令

------类似于cmd的功能,client执行命令,server发命令结果发送到client -----------server.py------------------- import subprocess#subprocess.Popen,主要用Popen这个类实现shell import socketsk=socket.socket()print(sk)address=('127.0.0.1',8003)sk.bind(address)sk.listen(3)print('waiting

python批量远程执行命令

#!/usr/bin/env python #Kiss Python ############## ##### ip.list ################################# #     172.16.13.118:root:centos:hostname:                                                       # #     172.16.5.114:root:centos:hostname:whoami:w:ifcon

通过python socket远程执行命令,并返回值

#!/usr/bin/env python#  TCP-Serverimport socketimport subprocesssk_obj = socket.socket(socket.AF_INET,socket.SOCK_STREAM)sk_obj.bind(('127.0.0.1',8000))sk_obj.listen(5)while True:    conn,ipaddr = sk_obj.accept()    print ('connection from ip: %s' %

python批量执行命令发送文件

#!/usr/bin/python #-*- coding: utf-8 -*- import paramiko import datetime import os,tab,sys from multiprocessing import Process, Pool host_list = ( ('192.168.1.127','root','123456'), ('192.168.1.137','root','123456'), ('192.168.1.143','root','123456')

ssh无密码登录远程主机执行特定命令的注意事项

最近的一个项目要结合使用rabbitmq.keepalived.supervisor.其中的一个场景为某个keepalived实例被提升为MASTER后需要到部署了rabbitmq client的远程主机上kill掉这些client进程. 一般的思路为配置keepalived所在主机与部署了client的主机之间的无密码ssh登录,然后通过ssh执行远程命令,先获取各client进程的进程号,然后逐个kill掉这些进程. 大体思路很简单,但过程中却碰到了不少问题.配置无密码ssh至远程主机的步骤

ssh批量登录 上传 执行命令 下载文件

用途: 搞linux主机的内网,拿到通用的账户密码,批量登录,上传系统信息收集脚本,把执行的结果拉回本地,用于分析. 缺点: 不支持多线程  密码必须正确切可连通  端口硬编码为22 如果不是22 请自行修改 执行过程: 执行ssh.py root root 会自动登录ssh,上传本地文件目录下的1.py文件到linux服务器tmp目录,执行/tmp/1.py文件,删除/tmp/1.py文件,把1.py执行的文件的生成的test.txt下载回本地.注意:下载的文件名已硬编码在1.py文件28行,

批量复制及执行命令shell脚本

平时在处理一个或几个机器运行环境时,一个机器一个机器处理也能接受,但是如果是一批机器,几十或几百台,要是一台一台去安装环境,光是输入同一的命令,估计你自己都想吐,所有聪明的人会想一些偷懒的办法,确实可以找到一些省时省力的方法,比如写一个批量处理shell脚本,这几天在处理一批(八九十台)机器环境,找了一些批量处理的脚本,包括批量传输(scp)文件到多台机器上.批量执行命令到多台机器.还有需要交互的命令,下面记录一些这些命令: 机器IP文件:ip.txt 192.168.10.201 192.16