跳转到主要内容

Python的Linux系统管理工具

项目描述

https://travis-ci.org/xolox/python-linux-utils.svg?branch=master https://coveralls.io/repos/xolox/python-linux-utils/badge.svg?branch=master

Python包 linux-utils 提供了实用函数,使得在Python中编写Linux系统的系统管理任务变得容易。以下功能目前已被实现

此包目前在Ubuntu Linux上的cPython 2.7、3.4、3.5、3.6、3.7和PyPy(2.7)上进行了测试(使用Travis CI)。

安装

linux-utils 包可在PyPI上找到,这意味着安装应该像这样简单

$ pip install linux-utils

实际上,安装Python包的方式有很多种(例如,用户站点包目录per user site-packages directory虚拟环境或仅安装系统级)我并没有打算在这里深入讨论这个问题,所以如果你感到害怕,请在返回这些说明之前先了解一下你的选项 😊。

用法

有关Python API的详细信息,请参阅Read the Docs上的API文档。cryptdisks_start和cryptdisks_stop的Python实现作为以下两个程序提供在命令行中

正如其名称所暗示的,这些程序并不是它们“官方”版本的等效功能,因为它们只支持LUKS加密和可用的加密选项的小子集。

cryptdisks-start-fallback

用法: cryptdisks-start-fallback NAME

读取/etc/crypttab并使用给定的NAME解锁加密文件系统。

此程序模拟了Debian的cryptdisks_start程序的功能,但它只支持LUKS加密和可用的加密选项的小子集。

cryptdisks-stop-fallback

用法: cryptdisks-stop-fallback NAME

读取/etc/crypttab并使用给定的NAME锁定加密文件系统。

此程序模拟了Debian的cryptdisks_stop程序的功能,但它只支持LUKS加密和可用的加密选项的小子集。

历史

回到2015年,我编写了一些Python代码来解析Linux配置文件/etc/fstab/etc/crypttab,用于在crypto-drive-manager中使用。快进到2017年,我发现自己在rsync-system-backup中想要使用相同的功能。我面前出现了三个选择

复制/粘贴相关代码

在多个地方维护相同的代码会导致代码质量降低,因为需要重复编写文档、开发测试和修复错误是一项非常令人泄气的工作。事实上,我在2016年确实将此代码的部分复制/粘贴到了一个工作中,因为我在那里需要类似的功能。当然,从那时起,这两个实现开始出现分歧 😛。

将crypto-drive-manager作为rsync-system-backup的依赖项

虽然这种方法比复制/粘贴代码要好看一些,但它仍然不够优雅,因为这两个项目除了在Linux上与LUKS加密磁盘一起工作外,没有任何关系。

将功能提取到新的包中

在我看来,这是最优雅的方法,不幸的是,这也需要我付出最多的努力 😇。作为加分项,我发布了一个带有测试套件的新包,这意味着在crypto-drive-manager中留下未测试的代码更少(在撰写本文时,该代码没有测试套件)。

在提取代码时,我短暂地考虑将功能集成到debuntu-tools中,然而/etc/fstab/etc/crypttab的解析并不特定于Debian或Ubuntu,而且debuntu-tools有多个与Linux配置文件解析无关的依赖项。

从那时起,很明显这是一个好选择(没有将功能合并到debuntu-tools中),因为现在linux-utils提供了cryptdisks_startcryptdisks_stop的Python实现,这对于基于Debian之外的Linux系统非常有用。

联系

最新版本的 linux-utils 可在 PyPIGitHub 上找到。文档可在 Read the Docs 上查看,包括一个 变更日志。如有 bug 报告,请在 GitHub 上创建问题。如果您有任何问题或建议,请随时通过电子邮件发送给我 peter@peterodding.com

许可

本软件遵循 MIT 许可协议

© 2020 Peter Odding。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源分发

linux-utils-0.7.tar.gz (25.4 kB 查看哈希值)

上传时间 源代码

构建分发

linux_utils-0.7-py2.py3-none-any.whl (27.7 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持