반응형
파이썬, 시스템 정보 보여주기
글. 수알치 오상문
시스템 운영체제 및 디스크, 메모리 사용량 등을 보여줍니다.
리눅스는 캐시/버퍼 메모리 크기 고려하여 메모리 크기를 보여줍니다.
psutil 패키지가 없다면 pip install psutil 명령으로 설치해야 합니다.
[소스 코드]
# System Information
# by Oh SangMun
import platform
import psutil
import time
def sizefy(value):
'''
파일 바이트 단위 크기를 입력받고 적당한 단위로 변환하여 돌려준다.
Arguments:
value(int): 파일 크기(바이트 단위)
Returns:
(str): 변환된 크기와 단위
'''
try:
value = int(value)
except ValueError:
return "0 KB"
if value <= 0:
return '0 KB'
units = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']
unit_index = 0
while value >= 1024 and unit_index < len(units)-1:
value /= 1024.0
unit_index += 1
return '{:.2f} {}'.format(value, units[unit_index])
if __name__=="__main__":
OS = platform.system()
OS_Release = platform.release()
Host_Name = platform.node()
Python_Version = platform.python_version()
Processor_Architecture = platform.architecture()
while True:
print('\033c') # 출력 위치 초기화 화면 지움
print("*"*50)
print("OS:", OS)
print("OS Release:", OS_Release)
print("Host Name:", Host_Name)
print("Python Version:", Python_Version)
print("Processor Architecture:", Processor_Architecture)
#서버 디스크 사용량과 메모리 사용량을 검사
disk_usage = psutil.disk_usage('/')
memory_usage = psutil.virtual_memory()
try:
cached_buffers = memory_usage.cached + memory_usage.buffers
except:
cached_buffers = 0
print()
print(">>> Disk")
print(f"Total size: {str(disk_usage.total).rjust(15)} bytes ({sizefy(disk_usage.total)})")
print(f"Used size: {str(disk_usage.used).rjust(15)} bytes ({sizefy(disk_usage.used)})")
print(f"Free size: {str(disk_usage.free).rjust(15)} bytes ({sizefy(disk_usage.free)})")
print()
print(">>> Memory")
print(f"Total Mem.: {str(memory_usage.total).rjust(14)} bytes ({sizefy(memory_usage.total)})")
print(f"Used Mem.: {str(memory_usage.used).rjust(14)} bytes ({sizefy(memory_usage.used)})")
print(f"Free Mem.: {str(memory_usage.available).rjust(14)} bytes ({sizefy(memory_usage.available - cached_buffers)})")
if cached_buffers > 0:
print(f"Cache/Buf.: {str(cached_buffers).rjust(14)} bytes ({sizefy(cached_buffers)})")
print("*"*50)
time.sleep(5)
반응형
'Python 활용' 카테고리의 다른 글
외래키(FOREIGN KEY) 관계 무시하고 삭제하기 (1) | 2024.01.23 |
---|---|
Python과 C#의 AES 암호화 연동 (0) | 2024.01.16 |
Sqlalchemy ORM, order_by에 case 이용 예제 (1) | 2023.12.12 |
Python으로 만나보는 디지털 포렌식 Digital Forensic (0) | 2023.11.13 |
파이썬, IP 유효성 확인 (IPv4, IPv6) (0) | 2023.11.10 |