用于python的linux系统管理工具

linux-utils的Python项目详细描述


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

python包linux utils提供了一些实用程序功能,使它变得简单 在python中的Linux系统上编写系统管理任务脚本。这个 目前已实现以下功能:

该包目前在cpython 2.6、2.7、3.4、3.5、3.6和pypy上测试 (2.7)在ubuntu linux上(使用Travis CI)。

Installation

linux实用程序包在PyPI上提供,这意味着安装应该 简单到:

$ pip install linux-utils

实际上有很多方法可以安装python包(例如per user site-packages directoryvirtual environments),或者只安装 我不打算在这里讨论,所以 如果这让你感到害怕,那么在回到这些之前,先阅读一下你的选项 说明;-)。

Usage

有关python api的详细信息,请参阅api文档 在Read the Docs上提供。cryptdisks_start的python实现 命令行中的cryptdisks_stop如下所示 程序:

因为这些名字暗示着这些程序不是它们的功能等价物 “官方”对应,因为它们只支持luks加密和 可用加密选项的子集。

cryptdisks-start-fallback

用法:加密磁盘开始回退名称

读取/etc/crypttab并解锁具有给定名称的加密文件系统。

这个程序模拟Debian的CryptDisks启动程序的功能, 但它只支持luks加密和一小部分可用的 加密选项。

cryptdisks-stop-fallback

用法:加密磁盘停止回退名称

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

这个程序模拟Debian的cryptdisks_stop程序的功能, 但它只支持luks加密和一小部分可用的 加密选项。

History

早在2015年,我就编写了一些python代码来解析linux配置文件 /etc/fstab/etc/crypttab用于crypto-drive-manager。快的 到2017年,我发现自己想使用同样的功能 在rsync-system-backup中。我有三个选择:

  1. 复制/粘贴相关代码。必须在 多个位置导致低质量代码,因为必须复制 编写文档、开发测试和修复bug的努力是一项非常艰巨的任务。 使努力失去动力。

    实际上,在2016年的某个时候,我确实将此代码的部分复制/粘贴到 项目在工作,因为我需要类似的功能。当然 从那时起,这两种实现方式开始出现分歧:-p.

  2. 使加密驱动器管理器成为rsync系统备份的依赖项。尽管 这种方法没有复制/粘贴代码那么难看,它仍然不是 非常优雅,因为这两个项目彼此无关 除了在linux上使用luks加密磁盘之外。

  3. 将功能提取到新包中。在我看来 显然,最优雅的方法,不幸的是它也需要 我的工作:-)。另一方面,我正在发布一个新的包 测试套件,这意味着更少的未测试代码仍留在crypto-drive-manager (在编写时没有测试套件)。

在提取代码时,我很快就考虑集成这些功能进入debuntu-tools,但是/etc/fstab/etc/crypttab解析 完全不是debian或ubuntu特有的,debuntu-tools有几个 与Linux配置文件解析无关的依赖项。

从那时起,很明显这是一个很好的选择(不是合并 因为包现在提供了一个python 实现cryptdisks_startcryptdisks_stop,其中大部分 在不是基于debian的的linux系统上很有用。

Contact

最新版本的linux实用程序可以在PyPIGitHub上找到。这个 文档可以在Read the Docs上找到,其中包括changelog。为了 错误报告请在GitHub上创建问题。如果你有问题, 建议等。请随时给我发邮件到peter@peterodding.com

License

此软件是根据MIT license授权的。

版权所有©2018彼得·奥丁。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java按对象值分组,计数,然后按最大对象属性设置组键   在Android上处理Firebase DatabaseReference updateChildren OnCompletionListener的java正确方法   java Jetty与WebSocket的区别是什么。sendMessage(字符串数据)和void sendMessage(字节帧,字符串数据)?   与java中的XStream具有相同功能的C#序列化器/反序列化器   java查看是否从父类单击了JButton   java“抓取时超时”URLFetch GAE/J   java Tomcat自定义上下文。xml文件从未被考虑在内   文件java小程序删除(“java.io.tmpdir”)+“myfolder”内容关闭小程序或停止()   java LTV支持PDF格式的签名   java ScrollView不会填充   java如何使用socket创建与平台无关的互斥体?   java增强for(或“for each”)循环迭代到刚删除的元素会抛出错误   java是否可以使用iBATIS中止长时间运行的查询?   java我需要在web应用程序中放置一个文件,以便从servlet读取它吗   java BeanCreationException休眠5。LocalSessionFactoryBean Bean属性“EL”不可写或具有无效的setter方法