https://github.com/nicolargo/pymdstat
A pythonic library to parse /proc/mdstat file
https://github.com/nicolargo/pymdstat
Last synced: 3 months ago
JSON representation
A pythonic library to parse /proc/mdstat file
- Host: GitHub
- URL: https://github.com/nicolargo/pymdstat
- Owner: nicolargo
- License: mit
- Created: 2014-12-19T12:30:02.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-04-03T20:31:34.000Z (about 1 year ago)
- Last Synced: 2025-02-27T21:16:20.900Z (3 months ago)
- Language: Python
- Size: 35.2 KB
- Stars: 12
- Watchers: 5
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
README
========
PyMDstat
========.. image:: https://scrutinizer-ci.com/g/nicolargo/pymdstat/badges/build.png?b=master
:target: https://scrutinizer-ci.com/g/nicolargo/pymdstat/?branch=master
.. image:: https://scrutinizer-ci.com/g/nicolargo/pymdstat/badges/quality-score.png?b=master
:target: https://scrutinizer-ci.com/g/nicolargo/pymdstat/?branch=master
.. image:: https://img.shields.io/pypi/v/pymdstat.svg
:target: https://pypi.python.org/pypi/pymdstat/
:alt: Latest VersionA pythonic library to parse Linux /proc/mdstat file.
.. code-block:: python
>>> from pymdstat import MdStat
>>> mds = MdStat() # Read the /proc/mdstat file
>>> mds
Personalities : [raid1] [raid6] [raid5] [raid4]
md1 : active raid1 sdb2[1] sda2[0]
136448 blocks [2/2] [UU]md2 : active raid1 sdb3[1] sda3[0]
129596288 blocks [2/2] [UU]md3 : active raid5 sdl1[9] sdk1[8] sdj1[7] sdi1[6] sdh1[5] sdg1[4] sdf1[3] sde1[2] sdd1[1] sdc1[0]
1318680576 blocks level 5, 1024k chunk, algorithm 2 [10/10] [UUUUUUUUUU]md0 : active raid1 sdb1[1] sda1[0]
16787776 blocks [2/2] [UU]unused devices:
>>> mds.get_stats()
{'arrays': {'md0': {'available': '2',
'components': {'sda1': '0', 'sdb1': '1'},
'config': 'UU',
'status': 'active',
'type': 'raid1',
'used': '2'},
'md1': {'available': '2',
'components': {'sda2': '0', 'sdb2': '1'},
'config': 'UU',
'status': 'active',
'type': 'raid1',
'used': '2'},
'md2': {'available': '2',
'components': {'sda3': '0', 'sdb3': '1'},
'config': 'UU',
'status': 'active',
'type': 'raid1',
'used': '2'},
'md3': {'available': '10',
'components': {'sdc1': '0',
'sdd1': '1',
'sde1': '2',
'sdf1': '3',
'sdg1': '4',
'sdh1': '5',
'sdi1': '6',
'sdj1': '7',
'sdk1': '8',
'sdl1': '9'},
'config': 'UUUUUUUUUU',
'status': 'active',
'type': 'raid5',
'used': '10'}},
'personalities': ['raid1', 'raid6', 'raid5', 'raid4']}>>> mds.personalities()
['raid1', 'raid6', 'raid5', 'raid4']>>> mds.arrays()
['md2', 'md3', 'md0', 'md1']>>> mds.type('md3')
'raid6'>>> mds.status('md3')
'active'>>> mds.components('md3')
['sdk1', 'sdj1', 'sde1', 'sdl1', 'sdg1', 'sdf1', 'sdh1', 'sdc1', 'sdd1', 'sdi1']>>> mds.available('md3')
10>>> mds.used('md3')
10>>> mds.config('md3')
'UUUUUUUUUU'