Python本地密钥连接服务器下载nginx日志图文版

2024-10-13 15:24:58

1、先为Python环境安装本工具需要的相关模块。在管理员cmd下运行例如:pip install pyinstallerpip install paramiko就可以安装完成。

Python本地密钥连接服务器下载nginx日志图文版

3、#操作本地文件import os#远程连接服务器import param坡纠课柩iko#线程import threading垆杪屑丝#窗口import wx app = wx.App() #创建对象 win = wx.Frame(None,title="服务器日志保存程序", size=(900,600)) #创建窗口对象funt = wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD)win.SetFont(funt)text = wx.TextCtrl(win, value="日志备份从这里开始!", pos=(5,5), size=(800,25)) #创建文本输入框#text.SetBackgroundColour("#e1e1e1")ck1 = wx.TextCtrl(win, value="",pos=(5,30), size=((900/3-5),500),style = wx.TE_MULTILINE) #创建文本输入框ck2 = wx.TextCtrl(win, value="",pos=((900/3-5)+5,30), size=((900/3-5),500),style = wx.TE_MULTILINE) #创建文本输入框ck3 = wx.TextCtrl(win, value="",pos=((900/3-5)*2+5,30), size=((900/3-5),500),style = wx.TE_MULTILINE) #创建文本输入框fun = wx.Font(16, wx.SWISS, wx.NORMAL, wx.NORMAL)#定义字体大小#ck.SetFont(fun)#html.SetBackgroundColour("#e1e1e1") #这里是背景颜色ssh_arr = {'1':{'mulu':'青岛1','host':'123.123.98.186', #这里是服务器ip地址'user':'root','key_pem':'E:/服务器密钥/青岛1.pem',#这里是放在本地的密钥文件'ck':'ck1'#这里是一个变量值},'2':{'mulu':'北京1','host':'123.123.98.198', #这里是北京的服务器的ip地址'user':'root','key_pem':'E:/服务器密钥/北京1.pem',#这里是放在本地的密钥文件'ck':'ck2'#这里是一个变量值},'3':{'mulu':'香港1','host':'123.123.168.68', #这里是香港服务器的ip地址'user':'root',#这里是一个变量值'key_pem':'E:/服务器密钥/香港1.pem',#这里是放在本地的密钥文件'ck':'ck3'}}def link_ssh(k,ck):#通过密钥远程连接服务器key = os.path.expanduser( ssh_arr[k]['key_pem'] )mykey=paramiko.RSAKey.from_private_key_file( key )ssh = paramiko.SSHClient() #绑定实例ssh.load_system_host_keys()ssh.set_missing_host_key_policy( paramiko.AutoAddPolicy() )ssh.connect( ssh_arr[k]['host'], 22, ssh_arr[k]['user'], pkey=mykey) #连接远程主机sftp = ssh.open_sftp()remote_dir = '/var/log/nginx/'#将要获取nginx日志的目录#获取当前指定目录下的所有目录及文件all_files = sftp.listdir_attr( remote_dir )ck.AppendText('已连接:' + ssh_arr[k]['mulu'])for x in all_files:if os.path.isfile( 'E:/服务器日志/log/' + ssh_arr[k]['mulu'] + '/' + x.filename ):ck.AppendText(' 无需:' + x.filename)else:ck.AppendText(' 下载:' + x.filename)sftp.get( remote_dir + '/' + x.filename, 'E:/服务器日志/log/' + ssh_arr[k]['mulu'] + '/' + x.filename )#下载 两端都要指定文件名sftp.close()#释放ssh.close()#释放def Button1Event(event):for k in ssh_arr:if k == '1':ck = ck1if k == '2':ck = ck2if k == '3':ck = ck3ta = threading.Thread(target=link_ssh,args=(k,ck))#创建一个线程ta,执行 threadfun() ta.start() #调用start(),运行线程Button1 = wx.Button(win, label="开始", pos = (805,5), size=(80,25)) #创建按钮1Button1.Bind(wx.EVT_BUTTON,Button1Event)win.Show() #显示 app.MainLoop() #主事件循环

4、文件另存为指定的目录,我这里是D:/python35/123/123.py

5、开始菜单输入cmd后,右键选择“以管理员身份运行”

Python本地密钥连接服务器下载nginx日志图文版

7、然后在cmd执行:Python 123.py

Python本地密钥连接服务器下载nginx日志图文版

9、本程序可以用pyinstaller打包成exe文件 用管理员cmd执行:pip install pyinstaller 就可以了 然后命令行执行:pyinstaller -F -c 123.py 打包好的exe文件,在同目录的dist文件中pyinstaller 常用参数说明:–icon=图标路径-F 打包成一个exe文件-w 使用窗口,无控制台-c 使用控制台,无窗口

Python本地密钥连接服务器下载nginx日志图文版
猜你喜欢