[dashboard v0.3.10] daynight 主题更新 + 一些重构 + 计划任务备份示例

Dev

Co-authored-by: JackieSung4ev <[email protected]>
This commit is contained in:
naibaandJackieSung4ev authored and GitHub committed 2021-01-24 21:22:37 +08:00
commit 7d1e8a6a0a
9 files changed
+27 -21

No files matched your search

-1
View File
@@ -71,6 +71,5 @@ func (mp *memberPage) notification(c *gin.Context) {
func (mp *memberPage) setting(c *gin.Context) {
c.HTML(http.StatusOK, "dashboard/setting", mygin.CommonEnvironment(c, gin.H{
"Title": "系统设置",
"Conf": dao.Conf,
}))
}
+9
View File
@@ -0,0 +1,9 @@
#!/bin/sh
set -x
ME=`whoami`
ping example.com -c20 && \
echo "==== $ME ====" && \
ping example.net -c20 && \
echo "==== done! ===="
+8 -7
View File
@@ -6,6 +6,7 @@ import (
"log"
"net"
"net/http"
"os"
"os/exec"
"time"
@@ -16,8 +17,9 @@ import (
func main() {
// icmp()
// tcpping()
httpWithSSLInfo()
// httpWithSSLInfo()
// diskinfo()
cmdExec()
}
func tcpping() {
@@ -71,13 +73,12 @@ func icmp() {
}
func cmdExec() {
cmd := exec.Command("ping", "example.com", "-c2")
execFrom, err := os.Getwd()
if err != nil {
panic(err)
}
cmd := exec.Command(execFrom + "/cmd/playground/example.sh")
output, err := cmd.Output()
log.Println("output:", string(output))
log.Println("err:", err)
cmd = exec.Command("ping", "example", "-c2")
output, err = cmd.Output()
log.Println("output:", string(output))
log.Println("err:", err)
}
+1
View File
@@ -21,6 +21,7 @@ var adminPage = map[string]bool{
func CommonEnvironment(c *gin.Context, data map[string]interface{}) gin.H {
data["MatchedPath"] = c.MustGet("MatchedPath")
data["Version"] = dao.Version
data["Conf"] = dao.Conf
// 是否是管理页面
data["IsAdminPage"] = adminPage[data["MatchedPath"].(string)]
// 站点标题
@@ -1 +1 @@
body.transition-theme,body.transition-theme *,body.transition-theme *:before,body.transition-theme *:after{-webkit-transition:400ms cubic-bezier(0.995, -0.265, 0.855, 0.505) !important;transition:400ms cubic-bezier(0.995, -0.265, 0.855, 0.505) !important;-webkit-transition-delay:0 !important;transition-delay:0 !important}body[data-theme="dark"]{background-color:#121212}body[data-theme="dark"] .monitor-header h2{color:#e1e1e1}body[data-theme="dark"] .monitor-header h2 span{color:#a6a6a6}body[data-theme="dark"] .monitor-info-container{background-color:#1e1e1e;color:#e1e1e1;border:1px solid rgba(255,255,255,0.1);-webkit-box-shadow:0 2px 10px rgba(255,255,255,0.1);box-shadow:0 2px 10px rgba(255,255,255,0.1)}body[data-theme="dark"] .monitor-info-container .monitor-state-text{color:#959595}body[data-theme="dark"] .corner{background-color:#161616;border:1px solid rgba(255,255,255,0.15)}body[data-theme="dark"] .corner.good{background-color:#46973d}body[data-theme="dark"] .corner.warning{background-color:#975fe4}body[data-theme="dark"] .corner.danger{background-color:#940d0e}body[data-theme="dark"] .corner:hover{background-color:#2b2b2b}body[data-theme="dark"] .monitor-state-dot{background:#46973d}body[data-theme="dark"] .monitor-state-dot.warning{color:#faa11a;background:#faa11a}body[data-theme="dark"] .monitor-state-dot:after{background:#46973d}body[data-theme="dark"] .sub-content{color:#f2f2f2;background-color:#092f52;border:1px solid rgba(255,255,255,0.1);position:relative;z-index:10}body[data-theme="dark"] .sub-content::after{content:"";width:0;height:0;display:block;position:absolute;z-index:10;border:0;border-left:.5em solid transparent;border-right:.5em solid transparent;margin-left:-.5em;left:50%;border-top:.5em solid #092f52;bottom:-.5em}@media (max-width: 900px){body[data-theme="dark"] .sub-content{position:relative;z-index:10}body[data-theme="dark"] .sub-content::after{content:"";width:0;height:0;display:block;position:absolute;z-index:10;border:0;border-left:.5em solid transparent;border-right:.5em solid transparent;margin-left:-.5em;left:50%;border-top:.5em solid #092f52;bottom:-.5em}}body[data-theme="dark"] .switcher{background-color:#124b8c}body[data-theme="dark"] .grid-mode-toggle .switcher{background-color:#2f2f2f}body[data-theme="dark"] .grid-mode-toggle .switcher input[type="checkbox"]:checked+div>:first-child{color:#121212}footer{background-color:#2f2f2f;color:#f2f2f2;font-size:14px}footer .footer-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:center;padding:1rem}footer .footer-container p{width:100%;margin-top:1rem}footer .footer-container a{color:#f2f2f2}footer .footer-container div{width:100%}#back-to-top{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#FF9800;width:45px;height:45px;border-radius:50%;position:fixed;bottom:30px;right:30px;-webkit-transition:background-color .3s, opacity .5s, visibility .5s;transition:background-color .3s, opacity .5s, visibility .5s;opacity:0;visibility:hidden;z-index:1000}#back-to-top:after{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f106";font-size:2.2em;color:#fff}#back-to-top:hover{cursor:pointer;background-color:#cc7a00}#back-to-top:active{background-color:#cc7a00}#back-to-top.show{opacity:1;visibility:visible}.nav-bar{display:-ms-grid;display:grid;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-grid-columns:1fr 3fr;grid-template-columns:1fr 3fr;-ms-grid-rows:auto 1fr;grid-template-rows:auto 1fr;background-color:#2a3950;padding:.8em 8em}@media (max-width: 1250px){.nav-bar{padding:.8em 3em}}@media (max-width: 900px){.nav-bar{padding:.8em 1em}}@media (max-width: 500px){.nav-bar{-ms-grid-columns:auto 3fr;grid-template-columns:auto 3fr}}.nav-bar .logo{color:#f2f2f2;-ms-grid-column-align:start;justify-self:start;font-size:1.2em}.nav-bar a{color:#f2f2f2}.nav-bar li:last-child{background-color:#07090d}.icon-container{-ms-grid-column-align:end;justify-self:end;display:none}.icon-container .col{display:block;float:left;margin:1% 0 1% 1.6%}.icon-container .col:first-of-type{margin-left:0}.icon-container .cf:before,.icon-container .cf:after{content:" ";display:table}.icon-container .cf:after{clear:both}.icon-container .cf{*zoom:1}.icon-container .three{color:#ecf0f1;text-align:center}.icon-container .hamburger .line{width:50px;height:5px;background-color:#ecf0f1;display:block;margin:8px auto;-webkit-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}.icon-container .hamburger:hover{cursor:pointer}.icon-container #hamburger-icon.is-active{-webkit-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out;-webkit-transition-delay:0.6s;transition-delay:0.6s;-wLine truncated
body.transition-theme,body.transition-theme *,body.transition-theme *:before,body.transition-theme *:after{-webkit-transition:400ms cubic-bezier(0.995, -0.265, 0.855, 0.505) !important;transition:400ms cubic-bezier(0.995, -0.265, 0.855, 0.505) !important;-webkit-transition-delay:0 !important;transition-delay:0 !important}body[data-theme="dark"]{background-color:#121212}body[data-theme="dark"] .monitor-header h2{color:#e1e1e1}body[data-theme="dark"] .monitor-header h2 span{color:#a6a6a6}body[data-theme="dark"] .monitor-info-container{background-color:#1e1e1e;color:#e1e1e1;border:1px solid rgba(255,255,255,0.1);-webkit-box-shadow:0 2px 10px rgba(255,255,255,0.1);box-shadow:0 2px 10px rgba(255,255,255,0.1)}body[data-theme="dark"] .monitor-info-container .monitor-state-text{color:#959595}body[data-theme="dark"] .corner{background-color:#161616;border:1px solid rgba(255,255,255,0.15)}body[data-theme="dark"] .corner.good{background-color:#46973d}body[data-theme="dark"] .corner.warning{background-color:#975fe4}body[data-theme="dark"] .corner.danger{background-color:#940d0e}body[data-theme="dark"] .corner:hover{background-color:#2b2b2b}body[data-theme="dark"] .monitor-state-dot{background:#46973d}body[data-theme="dark"] .monitor-state-dot.warning{color:#faa11a;background:#faa11a}body[data-theme="dark"] .monitor-state-dot:after{background:#46973d}body[data-theme="dark"] .sub-content{color:#f2f2f2;background-color:#092f52;border:1px solid rgba(255,255,255,0.1);position:relative;z-index:10}body[data-theme="dark"] .sub-content::after{content:"";width:0;height:0;display:block;position:absolute;z-index:10;border:0;border-left:.5em solid transparent;border-right:.5em solid transparent;margin-left:-.5em;left:50%;border-top:.5em solid #092f52;bottom:-.5em}@media (max-width: 900px){body[data-theme="dark"] .sub-content{position:relative;z-index:10}body[data-theme="dark"] .sub-content::after{content:"";width:0;height:0;display:block;position:absolute;z-index:10;border:0;border-left:.5em solid transparent;border-right:.5em solid transparent;margin-left:-.5em;left:50%;border-bottom:.5em solid #092f52;top:-.5em}}body[data-theme="dark"] .switcher{background-color:#124b8c}body[data-theme="dark"] .grid-mode-toggle .switcher{background-color:#2f2f2f}body[data-theme="dark"] .grid-mode-toggle .switcher input[type="checkbox"]:checked+div>:first-child{color:#121212}footer{background-color:#2f2f2f;color:#f2f2f2;font-size:14px}footer .footer-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:center;padding:1rem}footer .footer-container p{width:100%;margin-top:1rem}footer .footer-container a{color:#f2f2f2}footer .footer-container div{width:100%}#back-to-top{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#FF9800;width:45px;height:45px;border-radius:50%;position:fixed;bottom:30px;right:30px;-webkit-transition:background-color .3s, opacity .5s, visibility .5s;transition:background-color .3s, opacity .5s, visibility .5s;opacity:0;visibility:hidden;z-index:1000}#back-to-top:after{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f106";font-size:2.2em;color:#fff}#back-to-top:hover{cursor:pointer;background-color:#cc7a00}#back-to-top:active{background-color:#cc7a00}#back-to-top.show{opacity:1;visibility:visible}.nav-bar{display:-ms-grid;display:grid;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-grid-columns:1fr 3fr;grid-template-columns:1fr 3fr;-ms-grid-rows:auto 1fr;grid-template-rows:auto 1fr;background-color:#2a3950;padding:.8em 8em}@media (max-width: 1250px){.nav-bar{padding:.8em 3em}}@media (max-width: 900px){.nav-bar{padding:.8em 1em}}@media (max-width: 500px){.nav-bar{-ms-grid-columns:auto 3fr;grid-template-columns:auto 3fr}}.nav-bar .logo{color:#f2f2f2;-ms-grid-column-align:start;justify-self:start;font-size:1.2em}.nav-bar a{color:#f2f2f2}.nav-bar li:last-child{background-color:#07090d}.icon-container{-ms-grid-column-align:end;justify-self:end;display:none}.icon-container .col{display:block;float:left;margin:1% 0 1% 1.6%}.icon-container .col:first-of-type{margin-left:0}.icon-container .cf:before,.icon-container .cf:after{content:" ";display:table}.icon-container .cf:after{clear:both}.icon-container .cf{*zoom:1}.icon-container .three{color:#ecf0f1;text-align:center}.icon-container .hamburger .line{width:50px;height:5px;background-color:#ecf0f1;display:block;margin:8px auto;-webkit-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}.icon-container .hamburger:hover{cursor:pointer}.icon-container #hamburger-icon.is-active{-webkit-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out;-webkit-transition-delay:0.6s;transition-delay:0.6s;-wLine truncated
+2 -2
View File
@@ -37,8 +37,8 @@
计划的格式为:<code>* * * * *</code> 分 时 天 月 星期,详情见 <a
href="https://pkg.go.dev/github.com/robfig/cron/v3#hdr-CRON_Expression_Format"
target="_blank">计划表达式格式</a><br>
命令:Shell 命令,就像写脚本一样就可以,如果遇到 xxx 命令找不到,可能是 <code>PATH</code> 环境变量的问题,<code>source ~/.bashrc</code>
或者使用绝对路径执行。
命令:Shell 命令,就像写脚本一样就可以,如果遇到 xxx 命令找不到,可能是 <code>PATH</code> 环境变量的问题,在脚本顶部加一个 <code>source ~/.bashrc</code>
或者使用绝对路径执行,示例 <a href="https://gist.github.com/naiba/26efc8bf6f0b3273a9ba15ee48db5f11" target="_blank" rel="noopener noreferrer">备份脚本</a>。
</p>
</div>
</div>
+4 -8
View File
@@ -20,7 +20,7 @@
<body data-theme="light" data-gridlist="grid">
<header class="nav-bar clearfix">
<figure class="logo"><a href="/">{{.Title}}</a></figure>
<figure class="logo"><a href="/">{{.Conf.Site.Brand}}</a></figure>
<div class="icon-container">
<div class="row cf">
<div class="three col">
@@ -34,16 +34,12 @@
{{if .Admin}}
<li><a href="/">首页</a></li>
<li><a href="/service">服务状态</a></li>
<li><a href="/server">服务器</a></li>
<li><a href="/monitor">监控</a></li>
<li><a href="/notification">通知</a></li>
<li><a href="/setting">设置</a></li>
<li><a href="#" style="padding:.8em;text-align:center;"
title="您已登录">{{.Admin.Name}}</a></li>
<li><a href="/server" style="padding:.8em;text-align:center;">管理后台</a></li>
{{else}}
<li><a href="/">首页</a></li>
<li><a href="/service">服务状态</a></li>
<li><a href="/login">登录</a></li>{{end}}
<li><a href="/login">登录</a></li>
{{end}}
</ul>
</nav>
</header>
@@ -20,7 +20,7 @@
<body data-theme="light" data-gridlist="list">
<article>
<header class="nav-bar clearfix">
<figure class="logo"><a href="/">{{.Title}}</a></figure>
<figure class="logo"><a href="/">{{.Conf.Site.Brand}}</a></figure>
<div class="icon-container">
<div class="row cf">
<div class="three col">
+1 -1
View File
@@ -13,7 +13,7 @@ import (
pb "github.com/naiba/nezha/proto"
)
var Version = "v0.3.9"
var Version = "v0.3.10"
const (
SnapshotDelay = 3