22 lines
528 B
Go
22 lines
528 B
Go
//go:build !windows
|
||
|
||
package hostupdate
|
||
|
||
import (
|
||
"fmt"
|
||
"syscall"
|
||
)
|
||
|
||
// checkBackupDiskSpace 确保备份目录至少有 2 GiB 可用空间。
|
||
func checkBackupDiskSpace(directory string) error {
|
||
var disk syscall.Statfs_t
|
||
if err := syscall.Statfs(directory, &disk); err != nil {
|
||
return fmt.Errorf("检查备份磁盘空间:%w", err)
|
||
}
|
||
available := int64(disk.Bavail) * int64(disk.Bsize)
|
||
if available < 2<<30 {
|
||
return fmt.Errorf("备份目录可用空间不足 2 GiB:当前 %d MiB", available>>20)
|
||
}
|
||
return nil
|
||
}
|