分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

远程执行命令,下载文件,上传文件(并记录日志)

发布时间:2023-09-06 01:26责任编辑:彭小芳关键词:暂无标签
import paramiko,osimport loggingclass ssh_host(object): ???def __init__(self,host_ip,password,port=22,user=‘root‘,log_file=‘ssh_host.log‘): ???????self.host_ip = host_ip ???????self.password = password ???????self.port = port ???????self.user = user ???????self.log_file = log_file ???def __connect(self): ???????transport = paramiko.Transport((self.host_ip,self.port)) ???????transport.connect(username=self.user, password=self.password) ???????sftp = paramiko.SFTPClient.from_transport(transport) ???????return transport,sftp ???def __Logger(self,method): ???????logger = logging.getLogger(method) ???????formatter = logging.Formatter(‘%(asctime)s %(levelname)-8s:%(message)s‘) ???????file_handler = logging.FileHandler(self.log_file) ???????file_handler.setFormatter(formatter) ???????logger.addHandler(file_handler) ???????logger.setLevel(logging.INFO) ???????return logger ???def run_sys(self,command): ???????logger = self.__Logger(‘run_sys‘) ???????ssh = paramiko.SSHClient() ???????ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ???????ssh.connect(hostname=self.host_ip, port=self.port, username=‘root‘, password=self.password) ???????stdin, stdout, stderr = ssh.exec_command(command) ???????if len(stderr.read().decode()) != 0: ???????????logger.error("%s:%s<==>%s" % (self.host_ip, command, stderr.read().decode())) ???????print(command) ???????print(stdout.read().decode()) ?# 输出结果 ???????print(stderr.read().decode()) ???????ssh.close() ???????return stdin, stdout, stderr ???def download_file(self,filename,local_path=‘F://BaiduNetdiskDownload//‘): ???????logger = self.__Logger(‘download_file‘) ???????connect,sftp = self.__connect() ???????sftp.get(filename,local_path+os.path.basename(filename)) ???????logger.info(‘%s:%s download %s‘%(self.host_ip,filename,local_path)) ???????connect.close() ???def upload_file(self,filename,local_path=‘F://BaiduNetdiskDownload//‘): ???????logger = self.__Logger(‘upload_file‘) ???????connect, sftp = self.__connect() ???????sftp.put(local_path+os.path.basename(filename),filename) ???????logger.info(‘%s:%s upload %s‘%(self.host_ip,local_path,filename)) ???????connect.close()host1 = ssh_host(‘192.168.71.3‘,‘zedata‘)host1.run_sys(‘pwd‘)#host1.upload_file(‘/root/bad.txt‘)host1.download_file(‘/root/bad.txt‘)

远程执行命令,下载文件,上传文件(并记录日志)

原文地址:http://www.cnblogs.com/chimeiwangliang/p/7885237.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved