栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

批量下载服务器上指定目录下的日志python+paramiko--推荐使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

批量下载服务器上指定目录下的日志python+paramiko--推荐使用

一.配置文件

hosts.ini文件内容:

192.168.1.9,root,123456,22
192.168.1.19,root,123456,22

 二.运行的d代码;




"""
从远程linux服务器下载文件到本机
remote_catalog,   #远程服务器目录
local_catalog, #本地文件目录
hostname, #远程主机名或ip地址
username="root",  #远程主机 用户名
password="root",  #远程主机密码
port=22   #远程ssh端口


"""
import os

import paramiko


def download_filetolocal(remote_catalog,local_catalog,hostname,username="root",password="root",port=22):
    client=paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy)
    client.connect(hostname,username=username,password=password,port=port)



    #获取传输实例
    tran=client.get_transport()
    sftp=paramiko.SFTPClient.from_transport(tran)


    print(remote_catalog)


    #在远程服务器上执行的命令,重点的内容
    # logslists=sftp.listdir(remote_catalog)


    logslists=[]   #"组装路径+文件名 " -->形成一个列表,需要从服务器上下载的文件
    logsname =[logfile for logfile in sftp.listdir(remote_catalog)]
    for logonefile in logsname:
        newpathlog=remote_catalog+"/"+logonefile
        logslists.append(newpathlog)

    print("remote :",logslists)






    for xiazailog in logslists:
        #拼接本地存储文件的格式组成,把自己的日志放到自己的目录下  ;本地目录+自己的ip文件夹+文件名;
        savelogname = os.path.join(local_catalog,hostname,os.path.basename(xiazailog))

        #利用paramiko的函数下载远程服务的文件名,到本地的文件名
        sftp.get(xiazailog, savelogname)

    client.close()




if __name__ == '__main__':
    local_path = os.getcwd()
    # remote_catalog = "/home/log"
    remote_catalog = input("请输入要下载的linux服务的目录路径如: /var/log:").strip()
    with open("./hosts.ini") as lines:
        for line in lines:
            line = line.strip()
            hostname, username, password, port = line.split(",")

            print(hostname + "cmd ret: ")
            #创建以ip为文件名的文件夹,后续把各自日志存放在自己的目录下
            if not os.path.exists(hostname):
                os.makedirs(hostname)
            print("=" * 50)

            download_filetolocal(remote_catalog,local_path,hostname,username=username,password=password,port=port)

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1015120.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号