deploymgr_linux.go 636 B

1234567891011121314151617181920212223
  1. //go:build linux
  2. // +build linux
  3. package main
  4. import (
  5. "syscall"
  6. "lc/common/util"
  7. )
  8. func getFreeSpace(dir string) (int64, error) {
  9. var stat syscall.Statfs_t
  10. if err := syscall.Statfs(dir, &stat); err != nil {
  11. return 0, err
  12. }
  13. free := int64(stat.Bfree) * int64(stat.Bsize)
  14. total := int64(stat.Blocks) * int64(stat.Bsize)
  15. util.GetTagLog().Infof("sys", "DeployMgr:磁盘空间检查 dir=%s total=%dMB free=%dMB avail=%dMB bsize=%d blocks=%d bfree=%d bavail=%d",
  16. dir, total/(1024*1024), int64(stat.Bfree)*int64(stat.Bsize)/(1024*1024), free/(1024*1024),
  17. stat.Bsize, stat.Blocks, stat.Bfree, stat.Bavail)
  18. return free, nil
  19. }