Skip to content

thevickypedia/PyUdisk

Repository files navigation

PyUdisk

PyUdisk is a python module to generate S.M.A.R.T metrics for all drives/partitions on a host machine.

Python

Platform

pypi

Pypi Pypi-format Pypi-status

Installation

Recommendations

  • Install python [3.10] or [3.11]
  • Use a dedicated [virtual environment]

For monitoring and reporting, use

pip install PyUdisk[standard]

For basic functionality, use

pip install PyUdisk

Usage

IDE

import pyudisk

if __name__ == '__main__':
    for metric in pyudisk.smart_metrics():
        print(metric)

CLI

pyudisk start

Use pyudisk --help for usage instructions.

Environment Variables

Sourcing environment variables from an env file

By default, PyUdisk will look for a .env file in the current working directory.

  • SMART_LIB: Path to the S.M.A.R.T CLI library. Uses udisksctl for Linux and smartctl for macOS/Windows.
  • DISK_LIB: Path to disk util library. Uses lsblk for Linux, diskutil for macOS, and pwsh for Windows.
  • METRICS: List of metrics to monitor. Default: []
  • GMAIL_USER: Gmail username to authenticate SMTP library.
  • GMAIL_PASS: Gmail password to authenticate SMTP library.
  • RECIPIENT: Email recipient for email notifications.
  • PHONE: Phone number for SMS notifications.
  • NTFY_URL: URL for Ntfy notifications.
  • NTFY_TOPIC: Topic for Ntfy notifications.
  • NTFY_USERNAME: Username for Ntfy notifications.
  • NTFY_PASSWORD: Password for Ntfy notifications.
  • TELEGRAM_BOT_TOKEN: Telegram bot token for Telegram notifications.
  • TELEGRAM_CHAT_ID: Telegram chat ID for Telegram notifications.
  • TELEGRAM_THREAD_ID: Telegram thread ID for Telegram notifications.
  • DISK_REPORT: Boolean flag to send disk report via email.
  • REPORT_DIR: Directory to save disk reports. Default: report
  • REPORT_FILE: Filename for disk reports. Default format: disk_report_%m-%d-%Y_%I:%M_%p.html

Requirement

python -m pip install gitverse

Usage

gitverse-release reverse -f release_notes.rst -t 'Release Notes'

Linting

pre-commit will ensure linting

Requirement

python -m pip install pre-commit

Usage

pre-commit run --all-files

Pypi Package

pypi-module

https://pypi.org/project/PyUdisk/

License & copyright

© Vignesh Rao

Licensed under the MIT License