This commit is contained in:
Liang Ding 2022-12-20 20:47:30 +08:00
parent 9ffb1e20cf
commit ddb31becf8
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
3 changed files with 59 additions and 8 deletions

View file

@ -20,7 +20,6 @@ import (
"bytes"
"errors"
"fmt"
"github.com/shirou/gopsutil/v3/disk"
"io/ioutil"
"os"
"path"
@ -85,13 +84,7 @@ func autoStat() {
return
}
usage, err := disk.Usage(util.WorkspaceDir)
if nil != err {
logging.LogErrorf("get disk usage failed: %s", err)
return
}
logging.LogInfof("disk usage [total=%s, used=%s, free=%s]", humanize.Bytes(usage.Total), humanize.Bytes(usage.Used), humanize.Bytes(usage.Free))
if usage.Free < uint64(Conf.Stat.DataSize*2) {
if util.NeedWarnDiskUsage(Conf.Stat.DataSize) {
util.PushMsg(Conf.Language(179), 7000)
}
}

35
kernel/util/disk.go Normal file
View file

@ -0,0 +1,35 @@
// SiYuan - Build Your Eternal Digital Garden
// Copyright (c) 2020-present, b3log.org
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//go:build !ios
package util
import (
"github.com/dustin/go-humanize"
"github.com/shirou/gopsutil/v3/disk"
"github.com/siyuan-note/logging"
)
func NeedWarnDiskUsage(dataSize int64) bool {
usage, err := disk.Usage(WorkspaceDir)
if nil != err {
logging.LogErrorf("get disk usage failed: %s", err)
return false
}
logging.LogInfof("disk usage [total=%s, used=%s, free=%s]", humanize.Bytes(usage.Total), humanize.Bytes(usage.Used), humanize.Bytes(usage.Free))
return usage.Free < uint64(dataSize*2)
}

23
kernel/util/disk_ios.go Normal file
View file

@ -0,0 +1,23 @@
// SiYuan - Build Your Eternal Digital Garden
// Copyright (c) 2020-present, b3log.org
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//go:build ios
package util
func NeedWarnDiskUsage(dataSize int64) bool {
return false
}