GGSheng's picture
feat: deploy Gemma 4 to hf space
08c964e verified
{% extends "layout.html" %}
{% block content %}
<style>
/*日志审计*/
#logAudit .tootls_group,
#panelRun .tootls_group.tools_bottom {
display: flex;
flex-wrap: wrap;
height: auto;
line-height: inherit;
}
#logAudit .tootls_group.tools_top {
justify-content: space-between;
}
.tootls_group.tools_top .tools_left {
display: flex;
align-items: center;
}
.tootls_group .tools_item {
display: flex;
align-items: center;
margin-right: 15px;
}
.tools_item .tools_label {
margin-right: 15px;
}
#logAudit .divtable {
border-top: 1px solid #ddd;
}
#logAudit .divtable .table {
border-top: none;
}
#logAudit .table thead {
position: relative;
z-index: 1;
}
#logAudit .checkbox-text {
margin: 0;
}
.checkbox_group {
display: flex;
align-items: center;
height: 30px;
}
.checkbox_group .checkbox_item {
display: flex;
align-items: center;
cursor: default;
}
.checkbox_item+.checkbox_item {
margin-left: 15px;
}
.checkbox_item span {
display: block;
padding-left: 5px;
}
#logAudit .page .page_select_number {
border-left: 1px solid #ececec;
}
#logAudit .tools_bottom,
#panelRun .tools_bottom {
justify-content: flex-end;
}
#logAudit .bt_select_value {
max-width: 200px;
}
#logAudit .bt_select_list {
width: auto;
min-width: 100%;
max-height: 240px;
}
.bt-property-setting .tab-con {
padding: 15px;
}
.event_info .rows {
display: flex;
margin: 5px 0;
}
.event_info .rows .cols {
flex: 1;
display: flex;
height: 25px;
line-height: 25px;
}
.event_info .cols+.cols {
margin-left: 15px;
}
.event_info .cols .name {
width: 90px;
}
.event_info .cols .value {
flex: 1;
width: 0;
overflow: hidden;
text-overflow: ellipsis;
position: relative;
white-space: nowrap;
}
.event_info .desc {
margin-bottom: 10px;
}
.event_info .desc textarea {
width: 100%;
padding: 8px;
box-sizing: border-box;
resize: none;
}
.ml10 {
margin-left: 10px;
}
.tab-view-box {
padding: 15px;
}
.crontab-log {
overflow: auto;
border: 0 none;
line-height: 16px;
padding: 15px;
white-space: pre-wrap;
min-height: 250px;
background-color: rgb(51, 51, 51);
color: #f1f1f1;
margin-top: 10px;
margin-bottom: 0;
}
.tabContent {
display: flex;
height: 100%;
}
.tabContent .Tab {
border: 1px solid #ececec;
overflow: auto;
width: 200px;
}
.Content {
width: 100%;
flex: 1;
}
.tabContent .Tab .Item.active {
background-color: #EEF8F0;
color: #20a53a;
}
.tabContent .Tab .Item.active:hover {
background-color: #EEF8F0;
}
.tabContent .Tab .Item {
line-height: 18px;
padding: 10px;
border-bottom: 1px solid #ececec;
cursor: pointer;
word-wrap: break-word;
}
.tabContent .Tab .Item:hover {
background-color: rgb(245, 247, 250);
}
.daily-thumbnail {
width: 1200px;
margin:40px auto;
}
@media screen and (max-width: 1440px) {
.daily-thumbnail {
width: auto;
}
}
.thumbnail-box {
position: relative;
display: flex;
justify-content: center;
}
.thumbnail-introduce {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 40px;
}
.thumbnail-introduce span {
font-size: 20px;
font-weight: bold;
}
.thumbnail-introduce ul {
display: flex;
font-size: 16px;
line-height: 30px;
margin: 20px 0;
list-style-type: square;
}
.thumbnail-introduce ul li+li {
margin-left: 40px;
}
.pluginTipsGg {
position: relative;
width: 950px;
height: 720px;
background-color: #f1f1f1;
background-size: 100%;
background-repeat: no-repeat;
background-position: top;
border-radius: 4px;
}
/*.pluginTipsGg:hover::before{*/
/* display: inline-block;*/
/*}*/
.pluginTipsGg::before {
content: '点击预览';
display: none;
background: #000;
opacity: 0.2;
color: #fff;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
line-height: 621px;
font-size: 18px;
vertical-align: bottom;
text-align: center;
border-radius: 4px;
transition: all 1s;
}
.tab-list .tabs-item.active:after {
content: '';
width: 20px;
height: 2px;
position: absolute;
left: 50%;
bottom: 0px;
background: red;
margin-left: -10px;
background: #20a53a;
}
.thumbnail-box .thumbnail-tab {
margin-right: 40px;
width: 130px;
border-right: 1px solid #def2e2;
}
.thumbnail-tab li {
padding: 0 20px;
line-height: 46px;
width: 130px;
cursor: pointer;
font-size: 14px;
}
.thumbnail-tab li.on {
border-right: 2px solid #20a53a;
color: #20a53a;
font-size: 14px;
}
.thumbnail-item {
display: none;
}
.thumbnail-item.show {
display: block;
}
.bt_warning {
color: #fc6d26;
}
.line-row,
.line-row-tips {
height: 30px;
line-height: 30px;
display: inline-block;
}
.line-input input {
height: 30px;
line-height: 30px;
}
.line-row-tips {
margin-left: 10px !important;
color: #999;
vertical-align: top;
}
.crontab-log {
overflow: auto;
border: 0 none;
line-height: 16px;
padding: 15px;
white-space: pre-wrap;
min-height: 250px;
background-color: rgb(51, 51, 51);
color: #f1f1f1;
margin-top: 10px;
margin-bottom: 0;
}
.input_file {
float: left;
height: 35px;
border: 0.1px dashed #D0D0D0;
padding: 0 0 0 10px;
font-size: 14px;
outline: none;
margin-bottom: 20px;
}
.select_file {
float: left;
width: 80px;
height: 35px;
font-size: 14px;
color: #fff;
background: #10952a;
position: absolute;
left: 170px;
border: none;
}
.dividing-line {
width: 1px;
background: #ccc;
height: 20px;
vertical-align: middle;
}
#antiOverviewList .divtable,
#reinforceSystem .divtable {
margin: 0;
}
.logs-data-select {
margin-bottom: 15px;
}
.logs-title {
display: inline-block;
width: auto;
height: 35px;
font-size: 12px;
line-height: 35px;
margin-right: 5px;
}
.logs-unselect {
position: relative;
display: inline-block;
height: 30px;
border: 1px solid #e6e6e6;
border-radius: 2px;
font-size: 13px;
line-height: 28px;
}
.logs-unselect.active .logs-input-list {
display: block;
}
.logs-unselect.active .logs-input-list {
animation-name: layui-upbit;
animation-duration: .3s;
animation-fill-mode: both;
}
.logs-inputs {
box-sizing: border-box;
padding: 0 30px 0 10px;
height: 30px;
cursor: pointer;
}
.logs-unselect .logs-inputs:after {
position: absolute;
top: 0.8pc;
right: 6pt;
display: block;
width: 0;
height: 0;
border-color: #c2c2c2 transparent transparent;
border-style: solid;
border-width: 6px 6px 0;
content: '';
transition: transform .5s;
}
.logs-input-list {
position: absolute;
top: 30px;
right: -1px;
left: -1px;
z-index: 899;
display: none;
box-sizing: border-box;
padding: 5px 0;
height: auto;
min-width: 100%;
border: 1px solid #d2d2d2;
border-radius: 2px;
background-color: #fff;
box-shadow: 0 2px 4px rgba(0, 0, 0, .12);
}
.logs-input-list dd {
padding: 5px 15px;
height: 30x;
}
.logs-input-list dd:hover {
background-color: #f2f2f2;
cursor: pointer;
}
.logs-input-list dd.logs_checked {
background: #20a532 !important;
color: #fff;
}
.logs-page.page-style {
padding: 0 5px;
height: 30px;
font-size: 13px;
margin-top: 5px;
}
.page-style .nextPage {
display: inline-block;
margin: 0 3px;
padding: 0 10px;
height: 30px;
border-radius: 2px;
background-color: #f5f5f5;
color: #666;
text-align: center;
line-height: 30px;
cursor: pointer;
}
.page-style .Pcount {
margin-right: 0;
margin-left: 5px;
}
.page a:last-of-type {
border-right: 1px solid #ececec;
}
.firewall-tab-view .tab-nav-border span i {
font-style: initial;
}
.firewall-tab-view .tab-con {
padding: 0;
}
.firewall-tab-view .tab-con .btswitch+.btswitch-btn {
width: 2.8rem;
height: 1.75rem;
}
#logAudit .tootls_group {
justify-content: space-between;
}
.logAuditContent {
padding: 0 0 0 15px;
margin-left: 15px;
width: 100%;
flex: 1;
border-left: 1px solid #ececec;
}
.logAuditTabContent {
display: flex;
height: 100%;
}
.logAuditTabContent .logAuditTab .logAuditItem {
height: 35px;
line-height: 35px;
padding: 0 10px;
border-bottom: 1px solid #ececec;
cursor: pointer;
}
.logAuditTabContent .logAuditTab .logAuditItem:hover,
.logAuditTabContent .logAuditTab .logAuditItem.active {
background-color: #f2f2f2;
}
.logAuditTabContent .logAuditTab {
border: 1px solid #ececec;
overflow: auto;
}
.bt-checkbox, .bt-checkbox-all {
height: 18px;
width: 18px;
border: 1px solid #ccc;
border-radius: 2px;
margin-right: 8px;
position: relative;
margin-left: 10px;
}
.item-all,
.item {
height: 36px;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
.item-all {
border: 1px solid rgb(242, 242, 242);
border-top: 0;
}
.item .bt-checkbox.active,
.item .bt-checkbox.active1,
.item-all .bt-checkbox-all.active,
.item-all .bt-checkbox-all.active1 {
background-color: #20a53a;
border-color: #20a53a;
}
.item .bt-checkbox.active::after,
.item-all .bt-checkbox-all.active::after {
content: '';
display: block;
width: 11px;
height: 5.5px;
transform: rotate(-45deg);
border-bottom: 2px solid #fff;
border-left: 2px solid #fff;
margin: 3px;
position: absolute;
top: 50%;
left: 50%;
margin-left: -5px;
margin-top: -4px;
}
.item-all .bt-checkbox-all.active1::after,
.item .bt-checkbox.active1::after {
content: '';
display: block;
width: 9px;
height: 2px;
background-color: #fff;
position: absolute;
top: 50%;
left: 50%;
margin-left: -4.5px;
margin-top: -1px;
}
/* 搜索下拉框 */
.fz-wrapper {
width: 150px;
display: inline-block;
/* margin: 85px auto 0; */
}
.fz-select-btn,
li {
display: flex;
align-items: center;
cursor: pointer;
}
.fz-select-btn {
height: 32px;
padding: 0 8px;
font-size: 12px;
background: #fff;
border-radius: 2px;
justify-content: space-between;
border: 1px solid #cccccc;
/* box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1); */
}
.fz-select-btn i {
color: #20a53a;
font-size: 12px;
transition: transform 0.3s linear;
}
.fz-wrapper.fz-active .fz-select-btn i {
transform: rotate(-180deg);
}
.fz-content {
display: none;
width: 150px;
/* padding: 10px; */
margin-top: 15px;
background: #ffffff;
border-radius: 2px;
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
position: absolute;
z-index: 99999;
}
.fz-wrapper.fz-active .fz-content {
display: block;
}
.fz-content .fz-search {
position: relative;
}
.fz-search i {
position: absolute;
top: 50%;
left: 15px;
color: #20a53a;
font-size: 12px;
pointer-events: none;
transform: translateY(-50px);
}
.fz-search .fz-input {
height: 32px;
/* width: 100%; */
width: 142px;
outline: none;
font-size: 12px;
border-radius: 2px;
padding: 0 20px 0 8px;
border: 1px solid #ccc;
box-sizing: border-box;
margin: 4px;
}
.fz-search .fz-input:focus {
/* padding-left: 42px; */
border: 2px solid #20a53a;
}
.fz-search .fz-input::placeholder {
color: #ccc;
}
.fz-content .fz-options {
/* margin-top: 10px; */
max-height: 200px;
overflow-y: auto;
/* padding-right: 7px; */
}
.fz-options::-webkit-scrollbar {
/* width: 7px; */
}
.fz-options::-webkit-scrollbar-track {
background: #fff;
border-radius: 2px;
}
.fz-options::-webkit-scrollbar-thumb {
background: #f1f1f1;
border-radius: 25px;
}
.fz-options::-webkit-slider-thumb:hover {
background: #20a53a;
}
.fz-options li {
height: 32px;
padding: 0 13px;
font-size: 12px;
/* position: relative; */
}
.fz-options li:hover{
background: #F5F7FA;;
}
li.selected{
background: #20a53a !important;
color: #fff;
}
select:invalid {
color: #20a53a;
}
/* 搜索下拉 end */
option.bt-active {
background: #20a53a !important;
color: #fff;
}
/* 如果没有软件的遮罩*/
.software-mask[data-v-b4c5b219] {
--tw-bg-opacity: 1;
background-color: rgba(255,255,255,var(--tw-bg-opacity));
height: 100%;
/* opacity: .7; */
position: absolute;
left: 0px;
top: 0px;
width: 100%;
z-index: 997;
}
.prompt_description {
width: 430px;
}
.prompt_description {
width: 350px;
height: 60px;
line-height: 60px;
text-align: center;
position: absolute;
left: 50%;
top: 50%;
margin-top: -25px;
margin-left: -175px;
background: #fff;
box-shadow: 1px 1px 50px rgb(0 0 0 / 30%);
border: 1px solid #eee;
border-radius: 2px;
font-size: 13px;
}
.mengcheng{
--tw-bg-opacity: 1;
background-color: rgba(255,255,255,var(--tw-bg-opacity));
height: 100%;
opacity: .7;
position: absolute;
left: 0px;
top: 0px;
width: 100%;
z-index: 997;
}
/* 邓end */
.vertical_divider{
border-left: 1px solid #ccc;
margin: 0 15px;
height: 17px;
}
#button_group{
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: center;
}
#button_group .item span{
font-weight: 400;
color: #666666;
}
/* 日志搜索 start */
.input-search {
width: 230px;
height: 30px;
font-size: 12px;
line-height: 30px;
border-radius: 2px;
border: 1px solid rgb(220, 223, 230);
outline: none;
padding-left: 8px;
float: right;
vertical-align: top;
}
.search-icon{
font-family: 'Glyphicons Halflings';
line-height: 28px;
padding: 0 10px;
color: #888;
position: absolute;
right: 0;
font-size: 14px;
cursor: pointer;
z-index: 999;
}
.search-icon::before{
content: "\e003";
}
/* 日志搜索 end */
#siteMenu{
height: 75px;
background-color: #fff;
padding: 20px;
box-shadow: 0 3px 2px 0 rgba(0, 0, 0, 5%) !important;
border-radius: 4px;
display: none;
}
#siteMenu .menuCon{
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
#siteMenu .menuCon .siteSelect{
display: flex;
align-items: center;
}
.mt_select {
width: 90px;
display: inline-block;
height: 28px;
line-height: 28px;
padding: 0 10px;
border: 1px solid #ddd;
position: relative;
vertical-align: top;
cursor: pointer;
margin-right: 10px;
color: #333;
}
.siteSelect .mt_select {
width: auto;
min-width: 200px;
padding-right: 20px;
vertical-align: inherit;
border: 1px solid #ccc;
}
.siteSelect .mt_select .mt_select_value {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: inline-block;
vertical-align: bottom;
}
.mt_select .mt_select_content {
border: none;
height: 26px;
padding: 0;
vertical-align: top;
width: 162px;
outline:none;
}
.mt_select .glyphicon-triangle-bottom {
position: absolute;
right: 5px;
top: 50%;
margin-top: -6px;
}
.mt_select_list {
transition: all 500ms;
background: #fff;
position: absolute;
top: 30px;
left: 0;
display: none;
box-shadow: 0 1px 5px rgb(0 0 0 / 50%);
border-radius: 1px;
width: 100%;
z-index: 999;
background-color: #fff;
max-height: 200px;
overflow: auto;
}
.mt_select_list li {
height: 28px;
line-height: 28px;
padding: 0 10px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.mt_select_list li:hover {
background-color: #F5F7FA;
}
.mt_select_list li.active, .mt_select_list li.active input {
color: #fff;
background-color: #20a53a;
}
.refreshMenu{
width: 200px;
position: absolute;
background-color: white;
border-radius: 2px;
border: 1px solid #DCDFD6;
top: 39px;
left: -15px;
display: none;
}
.refreshMenu .arrow_b{
position: absolute;
left: 25%;
top: -17px;
border-width: 8px;
border-style: dashed solid dashed dashed;
border-color: transparent transparent #DCDFD6 transparent;
transform: translateX(-50%);
z-index: 999999;
}
.refreshMenu .arrow{
position: absolute;
left: 25%;
top: -16px;
border-width: 8px;
border-style: dashed solid dashed dashed;
border-color: transparent transparent rgb(255, 255, 255) transparent;
transform: translateX(-50%);
z-index: 999999;
}
.refreshMenuFix{
margin-left: -69px;
}
.timeSelect{
color: #ccc;
}
#time_choose {
border: #ddd 1px solid;
height: 30px;
padding: 0 10px;
width: 180px;
background-image:
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAHBAMAAADOnLEXAAAAA3NCSVQICAjb4U/gAAAAElBMVEX////v7++oqKiSkpJgYGAzMzNVUvUKAAAABnRSTlMA//////96eeD+AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAFnRFWHRDcmVhdGlvbiBUaW1lADA3LzEzLzE442/mwwAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAApSURBVAiZYxBiAAJFBhEDBgZmRwbmYAYGUwMQBrGAXBAHyAVxgFwgBwBYpgOoNMjLNgAAAABJRU5ErkJggg==);
background-repeat: no-repeat;
background-position: 160px center;
outline: none;
}
#site_time_choose{
border: #ddd 1px solid;
height: 30px;
padding: 0 10px;
width: 180px;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAHBAMAAADOnLEXAAAAA3NCSVQICAjb4U/gAAAAElBMVEX////v7++oqKiSkpJgYGAzMzNVUvUKAAAABnRSTlMA//////96eeD+AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAFnRFWHRDcmVhdGlvbiBUaW1lADA3LzEzLzE442/mwwAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAAApSURBVAiZYxBiAAJFBhEDBgZmRwbmYAYGUwMQBrGAXBAHyAVxgFwgBwBYpgOoNMjLNgAAAABJRU5ErkJggg==);
background-repeat: no-repeat;
background-position: 160px center;
outline: none;
}
.order_search {
display: inline-block;
height: 30px;
line-height: 30px;
position: relative;
}
.order_search .search_input {
height: 30px;
line-height: 30px;
border-radius: 2px;
border: 1px solid #DCDFE6;
outline: none;
padding-left: 8px;
vertical-align: top;
width: 230px;
}
.order_search .search_input:focus {
border-color: #20a53a;
}
.order_search .glyphicon-search {
height: 28px;
line-height: 28px;
padding: 0 10px;
color: #888;
position: absolute;
right: 0;
font-size: 14px;
cursor: pointer;
}
.order_search .search_input:focus+span.glyphicon-search {
color: #20a53a;
}
.thumbnail-introduce-ul-new ul{
display: flex;
align-items: center;
font-size: 14px;
justify-content: space-evenly;
}
</style>
<div class="main-content">
<div class="container-fluid" style="padding-bottom: 50px;">
<div id="cutTab" class="pos-box bgw mtb15" style="height:45px">
<div class="tab-list">
<div class="tabs-item active" data-name="panelLogs">面板日志</div>
<div class="tabs-item" data-name="siteLogs">网站日志</div>
<div class="tabs-item" data-name="logAudit">日志审计</div>
<div class="tabs-item" data-name="loginLogs">SSH登录日志</div>
<div class="tabs-item" data-name="softwareLogs">软件日志</div>
</div>
</div>
<div id="siteMenu">
<div class="menuCon">
<div class="siteSelect">
网站:
<div class="mt_select siteSelected">
<span class="mt_select_value">
<input type="text" class="mt_select_content" title="" value="" placeholder="请选择或搜索站点">
<span class="glyphicon glyphicon-triangle-bottom ml5"></span>
</span>
<ul class="mt_select_list"></ul>
</div>
<span class="bt-desired ml10" style="background-size: 16px;background-position: left;"><a href="javascript:;" class="btlink ml5 npsFeedback">需求反馈</a></span>
</div>
<div class="logsAction">
<button type="button" title="清理日志" class="btn btn-default btn-sm mr5" data-value="clear">
<span class="icon_title" style="position:relative">
<span>清理日志</span>
</span>
</button>
<div class="inlineBlock dividing-line" style="margin: 0 10px 0 5px;"></div>
<button type="button" title="导出日志" class="btn btn-default btn-sm mr5" data-value="input">
<span class="icon_title" style="position:relative">
<span>导出日志</span>
</span>
</button>
</div>
</div>
</div>
<div class="bgw mtb15 pd15 tab-view-box firewall-tab-view">
<div class="tab-con show w-full" id="panelLogs" style="padding: 0">
<div class="tab-nav-border">
<span class="on">操作日志</span>
<span>运行日志</span>
<span>计划任务日志</span>
</div>
<div class="tab-con" style="padding: 15px 0 0;overflow: none;">
<div class="tab-block on">
<div class="divtable">
<div id="operationLog"></div>
<div class="dataTables_paginate paging_bootstrap page operationLog" style="margin-bottom:0">
</div>
</div>
</div>
<div class="tab-block">
<div id="errorLog"></div>
</div>
<div class="tab-block" id="panelCrontab">
<div class="tabContent">
<div>
<div class="bt-search mb10">
<input type="text" class="search-input" placeholder="请输入计划任务名">
<span class="glyphicon glyphicon-search" aria-hidden="true"></span>
</div>
<div class="Tab"></div>
</div>
<div class="Content">
<button type="button" title="刷新日志"
class="btn btn-success btn-sm mr5 refreshCrontabLogs"><span>刷新日志</span></button>
<span class="bt-desired" style="background-size: 16px;background-position: left;line-height: 30px;"><a href="javascript:;" class="btlink ml5 npsFeedback">需求反馈</a></span>
<span class="separation" style="display:none">| &nbsp;</span>
<button type="button" title="清理日志"
class="btn btn-default btn-sm mr5 clearLogs" style="display:none"><span>清理日志</span></button>
<button type="button" title="导出日志"
class="btn btn-default btn-sm mr5 deriveLogs" style="display:none"><span>导出日志</span></button>
<div style="float:right;display:flex">
<div>
<button class="btn btn-sm btn-success Catalogue_show" style="display:none" id="Catalogue_show_left">全部</button>
<button style="margin-left:-5px;display:none" class="btn btn-sm btn-default Catalogue_show"
id="Catalogue_show_right">异常</button>
</div>
<input id="time_choose" autocomplete="off" placeholder="自定义时间" type="text" style="margin-left:5px;display:none">
</div>
<div>
<div class="crontab-log"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tab-con hide" id="siteLogs" style="padding: 0">
<div class="tabContent">
<div class="Content">
<div class="tab-nav-border">
<span class="on" data-value="log">网站日志</span>
<span ><span class="firwall_place_of_attribution" style="cursor: pointer;height: 16px;width:16px;padding-right: 0px;"></span>日志统计</span>
<span>操作日志</span>
<span>WEB日志分析</span>
</div>
<div class="tab-con" style="padding: 15px 0 0;overflow: none;">
<div class="tab-block on" id="siteRun"></div>
<div class="tab-block" id="siteStatistics"></div>
<div class="tab-block" id="siteOnesite"></div>
<div class="tab-block" id="siteWeb"></div>
</div>
</div>
</div>
</div>
<div class="tab-con hide" id="logAudit">
<div class="logAuditTabContent">
<div class="logAuditTab"></div>
<div class="logAuditContent">
<div id="logAuditTable"></div>
<div id="logAuditPages" class="page" style="display: flex;justify-content: flex-end"></div>
<div id="logAuditPre" style="display: none;"></div>
</div>
</div>
<div class="installSoft" style="display: none">
<div class="daily-thumbnail">
<div class="thumbnail-introduce-new">
<div class="thumbnail-introduce-title-new" style="width:90%;flex-direction: column;">
<div class="thumbnail-title-left-new">
<div class="thumbnail-title-text-new">
<p>日志审计-功能介绍</p>
<p>对系统、网络、应用程序等进行记录的各种操作、事件、异常情况等信息进行收集、分析和审计,通过对这些日志信息的审计,可以发现系统存在的安全问题,及时采取措施进行修复和防范。</p>
</div>
</div>
<div class="thumbnail-title-button-new daily-product-buy" style="margin:16px 0 0 0">
<a href="javascript:;" class="btn btn-success va0 buyLogAudit"
onclick="product_recommend.pay_product_sign('ltd',104,'ltd')">立即购买</a>
</div>
</div>
<div class="thumbnail-introduce-hr"></div>
<div class="thumbnail-introduce-ul-new">
<ul style="justify-content: space-evenly;">
<li><span class="li-icon"></span>分析和解析常用日志</li>
</ul>
</div>
</div>
<div class="thumbnail-box">
<ul class="thumbnail-tab">
<li class="on">日志列表</li>
</ul>
<div class="thumbnail-item show" style="overflow:auto">
<div class="pluginTipsGg"
style="background-image: url(https://www.bt.cn/Public/new/plugin/introduce/logs/logAudit_2.png);height: 600px;">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tab-con hide" id="loginLogs" style="padding: 0">
<div class="tab-con" style="padding: 0;overflow: none;">
<div class="tab-block on">
<div id="loginLogsContent">
<div class="w-full">
<div id="loginAllLogs"></div>
</div>
<div class="w-full" style="display: none">
<div id="loginSuccessLogs"></div>
</div>
<div class="w-full" style="display: none">
<div id="loginErrorLogs"></div>
</div>
</div>
<div class="daily-thumbnail" style="display: none;">
<div class="thumbnail-introduce-new">
<div class="thumbnail-introduce-title-new" style="flex-direction: column;">
<div class="thumbnail-title-left-new" >
<div class="thumbnail-title-text-new" >
<p>SSH登录日志-功能介绍</p>
<p>保障SSH服务器的安全性,发现和应对安全威胁。</p>
</div>
</div>
<div class="thumbnail-title-button-new daily-product-buy" style="margin:16px 0 0 0">
<a href="javascript:;" class="btn btn-success va0" onclick="product_recommend.pay_product_sign('ltd',130,'ltd')">立即购买</a>
</div>
</div>
<div class="thumbnail-introduce-hr"></div>
<div class="thumbnail-introduce-ul-new">
<ul style="justify-content: space-evenly;">
<li><span class="li-icon"></span>SSH安全审计</li>
<li><span class="li-icon"></span>SSH登录溯源</li>
<li><span class="li-icon"></span>SSH暴破记录</li>
<li><span class="li-icon"></span>SSH入侵分析</li>
</ul>
</div>
</div>
<div class="thumbnail-box">
<ul class="thumbnail-tab">
<li class="on">SSH登录日志</li>
</ul>
<div class="thumbnail-item show">
<div class="pluginTipsGg" style="background-image: url('https://www.bt.cn/Public/new/plugin/introduce/firewall/ssh_login_log.png');"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tab-con hide" id="softwareLogs" style="padding: 0">
<!-- <div class="tab-nav-border">
<span class="on">FTP日志</span>
<span>MySql慢日志</span>
<span>MySql错误日志</span>
</div> -->
<div class="tab-con" style="padding: 15px 0 0; overflow: none">
<div class="tab-block on" id="softwareFtp">
<div class="tabContent">
<div class="TabGroup">
<div class="bt-search mb10" style="display: none">
<input type="text" class="search-input" placeholder="请输入用户名" />
<span class="glyphicon glyphicon-search" aria-hidden="true"></span>
</div>
<div class="Tab"></div>
<span class="bt-desired" style="background-size: 16px;background-position: left;line-height: 30px;"><a href="javascript:;" class="btlink ml5 npsFeedback">需求反馈</a></span>
</div>
<!-- ftp -->
<div id="softftp" class="tab-block tab-show" style="margin-left: 25px;position: relative;width: 0;flex-grow: 1;">
<div id="ftpLogsTable"></div>
<div class="mask_layer"></div>
<!--<div class="daily-thumbnail" style="display: none; margin: 20px auto">-->
<!-- <div class="thumbnail-introduce">-->
<!-- <span>FTP日志</span>-->
<!-- <ul>-->
<!-- <li>记录FTP登录记录,FTP上传、下载、重命名和删除记录</li>-->
<!-- </ul>-->
<!-- <div class="daily-product-buy">-->
<!-- <a href="javascript:;" class="btn btn-success va0 mr10" onclick="product_recommend.pay_product_sign('ltd',101,'ltd')">立即购买</a>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="thumbnail-box">-->
<!-- <div class="thumbnail-item show" style="width: 100%">-->
<!-- <div class="pluginTipsGg" style="width: 100%; background-image: url('https://www.bt.cn/Public/new/plugin/introduce/logs/ftp-logs.png')"></div>-->
<!-- </div>-->
<!-- </div>-->
<!--</div>-->
<div class="daily-thumbnail" style="display: none;margin: 20px auto">
<div class="thumbnail-introduce-new">
<div class="thumbnail-introduce-title-new" style="flex-direction: column;">
<div class="thumbnail-title-left-new" >
<div class="thumbnail-title-text-new" >
<p>FTP日志-功能介绍</p>
<p>记录FTP登录记录,FTP上传、下载、重命名和删除记录.</p>
</div>
</div>
<div class="thumbnail-title-button-new daily-product-buy" style="margin:16px 0 0 0">
<a href="javascript:;" class="btn btn-success va0" onclick="product_recommend.pay_product_sign('ltd',101,'ltd')">立即购买</a>
</div>
</div>
<div class="thumbnail-introduce-hr"></div>
<div class="thumbnail-introduce-ul-new">
<ul style="justify-content: space-evenly;">
<li><span class="li-icon"></span>FTP登录记录</li>
<li><span class="li-icon"></span>FTP上传记录</li>
<li><span class="li-icon"></span>FTP重命名记录</li>
<li><span class="li-icon"></span>FTP删除记录</li>
</ul>
</div>
</div>
<div class="thumbnail-box">
<ul class="thumbnail-tab">
<li class="on">FTP日志</li>
</ul>
<div class="thumbnail-item show" style="flex-grow: 1;">
<div class="pluginTipsGg" style="height:280px;width:auto;background-image: url('https://www.bt.cn/Public/new/plugin/introduce/logs/ftp-logs.png');"></div>
</div>
</div>
</div>
</div>
<!-- 其他插件 -->
<div class="tab-block tab-show" id="softwarePlugLogs" style="margin-left: 25px">
<div style="margin-bottom: 5px; position: relative; height: 30px; line-height: 30px; display: flex; justify-content: space-between">
<button type="button" title="刷新日志" class="btn btn-success btn-sm mr5 refreshPlugLogs"><span>刷新日志</span></button>
<div class="bt-search mb10">
<input type="text" class="search-input" placeholder="请输入日志" />
<span class="glyphicon glyphicon-search" aria-hidden="true"></span>
</div>
</div>
<pre class="crontab-log"></pre>
</div>
<!-- mysql的 -->
<div class="tab-block tab-show" id="softMysql" style="margin-left: 25px">
<div class="tab-nav-border">
<span class="on">MySql慢日志</span>
<span>MySql错误日志</span>
</div>
<div style="padding-top: 15px">
<!-- 数据库慢日志 -->
<div class="tab-block" id="softwareMysqlSlow">
<div style="margin-bottom: 5px; position: relative; height: 30px; line-height: 30px; display: flex; justify-content: space-between">
<button type="button" title="刷新日志" class="btn btn-success btn-sm mr5 refreshMysqlSlow"><span>刷新日志</span></button>
<div class="bt-search mb10">
<input type="text" class="search-input" placeholder="请输入日志" />
<span class="glyphicon glyphicon-search" aria-hidden="true"></span>
</div>
</div>
<pre class="crontab-log"></pre>
</div>
<!-- 数据错误日志 -->
<div class="tab-block" id="softwareMysqlError">
<div style="margin-bottom: 5px; position: relative; height: 30px; line-height: 30px; display: flex; justify-content: flex-start; align-items: center">
<button type="button" title="刷新日志" class="btn btn-success btn-sm mr5 refreshMysqlError">
<span>刷新日志</span>
</button>
<span class="vertical_divider"></span>
<div id="button_group">
级别:
<div class="item">
<div class="bt-checkbox" data-name="warning"></div>
<span title="全部">警告</span>
</div>
<div class="item">
<div class="bt-checkbox" data-name="error"></div>
<span title="全部">错误</span>
</div>
<div class="item">
<div class="bt-checkbox" data-name="note"></div>
<span title="记录">记录</span>
</div>
</div>
</div>
<pre class="crontab-log"></pre>
</div>
</div>
</div>
<!-- php -->
<div class="tab-block tab-show" id="softPhp" style="margin-left: 25px">
<div style="margin-bottom: 5px; position: relative; height: 30px; line-height: 30px; display: flex; justify-content: space-between;align-items: center;">
<div style="display: flex;align-items: center;">
<button type="button" title="刷新日志" class="btn btn-success btn-sm mr5 refreshPlugLogs"><span>刷新日志</span></button>
<span class="vertical_divider" ></span>
<div class="phpselect">
<span style="margin: 0 10px">php版本 </span>
</div>
</div>
<div class="bt-search mb10">
<input type="text" class="search-input" placeholder="请输入日志" />
<span class="glyphicon glyphicon-search" aria-hidden="true"></span>
</div>
</div>
<pre class="crontab-log"></pre>
</div>
<div class="Content tab-show" id="DockerLogsTable"></div>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %} {% block scripts %} {{ super() }}
<script type="text/javascript">
// 日志nps入口
$('.npsFeedback').on('click',function(){
bt_tools.nps({name:'日志',type:22})
})
</script>
<script type="text/javascript" src="{{g.cdn_url}}/laydate/laydate.js"></script>
<script type="text/javascript" src="{{ static_url }}static/js/logs.js"></script>
<script type="text/javascript" src="{{ static_url }}static/js/soft.js"></script>
{% endblock %}