109 lines
3.5 KiB
Python
Executable File
109 lines
3.5 KiB
Python
Executable File
#!/usr/bin/python3
|
|
#-*- coding: utf-8 -*-
|
|
|
|
import os, sys, time, errno, socket, signal, psutil, random, logging.handlers, subprocess, paramiko, hvac
|
|
from xlwt import Workbook, XFStyle, Borders, Font, Pattern
|
|
from socket import error as SocketError
|
|
|
|
process_time = time.strftime("%Y%m%d_%H%M", time.localtime())
|
|
excel_file_name = '/mnt/e/excel/{}.xls'.format(process_time)
|
|
|
|
def process_close(flag=True, result=''):
|
|
if flag:
|
|
print("[Success]")
|
|
else:
|
|
print("[Fail]:{}".format(result))
|
|
|
|
sys.exit(0)
|
|
|
|
def set_header(sheet, header_list):
|
|
# 폰트 설정
|
|
font = Font()
|
|
font.bold = True
|
|
|
|
# 테두리 설정
|
|
borders = Borders()
|
|
borders.left = Borders.THIN
|
|
borders.right = Borders.THIN
|
|
borders.top = Borders.THIN
|
|
borders.bottom = Borders.THIN
|
|
|
|
# 배경색 설정
|
|
pattern = Pattern()
|
|
pattern.pattern = Pattern.SOLID_PATTERN
|
|
pattern.pattern_fore_colour = 22 # #E2EFDA는 xlwt에서 인덱스 22에 해당하는 색입니다.
|
|
|
|
hdrstyle = XFStyle()
|
|
hdrstyle.font = font
|
|
hdrstyle.borders = borders
|
|
hdrstyle.pattern = pattern
|
|
|
|
for idx, header in enumerate(header_list):
|
|
sheet.write(0, idx, header, hdrstyle)
|
|
sheet.col(idx).width = len(header) * 800
|
|
|
|
def write_data(sheet, data_list):
|
|
datestyle = XFStyle()
|
|
datestyle.num_format_str = 'YYYY-MM-DD'
|
|
|
|
for row_num, data in enumerate(data_list, start=1):
|
|
for col_num, cell_data in enumerate(data):
|
|
if col_num == 7:
|
|
sheet.write(row_num, col_num, cell_data, datestyle)
|
|
elif col_num in [1, 4, 5]:
|
|
formatted_data = u'{}'.format(cell_data) if cell_data else ''
|
|
sheet.write(row_num, col_num, formatted_data)
|
|
else:
|
|
sheet.write(row_num, col_num, cell_data)
|
|
|
|
def excel_write(header_list=[], data_list=[], filename='', sheetTitle=''):
|
|
workbook = Workbook(style_compression=2, encoding='utf-8')
|
|
sheet = workbook.add_sheet(sheetTitle)
|
|
|
|
set_header(sheet, header_list)
|
|
write_data(sheet, data_list)
|
|
|
|
sheet.panes_frozen = True
|
|
sheet.vert_split_pos = 0
|
|
sheet.horz_split_pos = 1
|
|
workbook.save(filename)
|
|
|
|
def main():
|
|
header_list=['번호','호스트 유형','호스트명','호스트 IP','포트번호','프로토콜','인증방법','1차 로그인 계정명','1차 로그인 비밀번호','1차 로그인 계정명','2차 로그인 비밀번호','용도','비고']
|
|
data_list=[]
|
|
|
|
openfile=open('/tmp/host_list','r')
|
|
readfile=openfile.readlines()
|
|
openfile.close()
|
|
for idx, host_data in enumerate(readfile):
|
|
try:
|
|
if idx==0: continue
|
|
host_num=idx
|
|
hosttype=host_data.strip().split(' ')[0]
|
|
print(hosttype)
|
|
hostname=host_data.strip().split(' ')[1]
|
|
host_ips=host_data.strip().split(' ')[2]
|
|
port_num=int(host_data.strip().split(' ')[3])
|
|
protocol='SSH'
|
|
auth_con='Password'
|
|
username=host_data.strip().split(' ')[4]
|
|
first_pw=host_data.strip().split(' ')[5]
|
|
rootuser=host_data.strip().split(' ')[6]
|
|
secon_pw=host_data.strip().split(' ')[7]
|
|
descript='-'
|
|
remarks_='-'
|
|
data_list.append([host_num,hosttype,hostname,host_ips,port_num,protocol,auth_con,username,first_pw,rootuser,secon_pw,descript,remarks_,])
|
|
except:
|
|
continue
|
|
|
|
excel_write(header_list, data_list, excel_file_name, 'TEST')
|
|
|
|
DEBUG=False
|
|
try:
|
|
if os.sys.argv[1]: DEBUG=True
|
|
except:
|
|
pass
|
|
main()
|
|
process_close()
|
|
|