Go를 사용하여 디스크 공간 가용성 검색
시스템 관리 영역에서는 최적의 성능과 리소스 관리를 위해 사용 가능한 디스크 공간을 모니터링하는 것이 필수적입니다. . 이 지식은 다양한 파티션의 사용 가능한 디스크 공간과 총 디스크 공간을 모두 표시하는 널리 사용되는 명령 df -h를 통해 얻을 수 있습니다.
Go에서 이 기능을 구현하기 위해 POSIX 시스템용 접근 방식과 POSIX 시스템용 접근 방식을 살펴봅니다. Windows용으로 특별히 제작되었습니다.
POSIX 시스템(Linux, macOS)
POSIX 시스템의 경우 Go golang.org/x/sys/unix 패키지 내에서 sys.unix.Statfs 기능을 제공합니다. 이 함수를 활용하려면 os.Getwd()를 사용하여 현재 작업 디렉터리를 검색한 다음 디렉터리 경로를 인수로 사용하여 unix.Statfs()를 호출해야 합니다. 그런 다음 Statfs_t 구조체는 Bavail(사용 가능한 블록 수) 및 Bsize(블록 크기)를 포함한 다양한 파일 시스템 통계에 대한 액세스를 제공합니다. 이러한 값을 곱하면 총 여유 공간(바이트)이 제공됩니다.
Windows 시스템
Windows는 unix.Statfs와 직접적으로 동등한 것이 없기 때문에 다른 문제를 제시합니다. 대신 Go의 syscall 패키지를 사용하고 golang.org/x/sys/windows 패키지의 windows.GetDiskFreeSpaceEx 함수를 사용해야 합니다. 이 함수는 드라이브 문자를 입력으로 사용하고 freeBytesAvailable(사용 가능한 바이트), totalNumberOfBytes(총 디스크 크기) 및 totalNumberOfFreeBytes(사용 가능한 바이트)의 세 가지 값을 반환합니다.
교차 플랫폼 패키지 생성
이 프로세스를 간소화하고 운영 체제 전반에 걸쳐 일관된 인터페이스를 제공하려면 전용 Go를 구축하세요. 패키지는 훌륭한 솔루션입니다. 이 패키지는 위에 설명된 기술을 활용하여 간단한 API를 통해 액세스할 수 있는 크로스 플랫폼 디스크 공간 보고를 구현할 수 있습니다. Go의 크로스 컴파일 기능을 수용함으로써 패키지를 편리하게 배포하고 다양한 플랫폼에서 사용할 수 있습니다.
위 내용은 POSIX 및 Windows 시스템 모두에서 Go의 디스크 공간 가용성을 어떻게 확인할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!