用于基本社区管理任务自动化的 5 个 Python 脚本

开发 后端 自动化
在 GitHub 上,我有几个每周都要使用的脚本。它们都不是很复杂,但每次都为我节省几分钟。其中一些是用 Perl 写的,因为我快 50 岁了(这些是我早些年写的)。有些是用 Python 写的,因为几年前,我决定要学习 Python。

[[378619]]

如果某些事情不得不重复做三遍,尝试使其自动化。

我 之前写过关于社区管理员的工作,如果你问 10 位社区管理员,你会得到 12 个不同的答案。不过,大多数情况下,你做的是社区需要你在任何特定时刻做的事情。而且很多事情可能是重复的。

当我还是系统管理员时,我遵循一个规则:如果某些事必须做三遍,我会尝试使其自动化。当然,如今,使用诸如 Ansible 这样的强大工具,就有了一整套科学的方法。

我每天或每周要做的一些事情涉及在一些地方查找内容,然后生成信息的摘要或报告,然后发布到别处。这样的任务是自动化的理想选择。这些并不是什么 难事,当我与同事共享其中一些脚本时,总是至少有一个能证明这是有用的。

在 GitHub 上,我有几个每周都要使用的脚本。它们都不是很复杂,但每次都为我节省几分钟。其中一些是用 Perl 写的,因为我快 50 岁了(这些是我早些年写的)。有些是用 Python 写的,因为几年前,我决定要学习 Python。

以下是概述:

tshirts.py

这个简单的 tshirts.py 脚本会根据你要定制的活动 T 恤的数量,然后告诉你尺寸分布是什么。它将这些尺寸分布在一条正态曲线(也称为 “钟形曲线”)上,以我的经验,这和一个正常的会议观众的实际需求非常吻合。如果在美国使用,则可能需要将脚本中的值调整的稍大一些;如果在欧洲使用,则可能需要将脚本中的值稍稍缩小一些。你的情况也许不同。

用法:

  1. [rbowen@sasha:community-tools/scripts]$ ./tshirts.py                                                                                                                                                          
  2. How many shirts? 300
  3. For a total of 300 shirts, order:
  4.  
  5. 30.0 small
  6. 72.0 medium
  7. 96.0 large
  8. 72.0 xl
  9. 30.0 2xl

followers.py

followers.py 脚本为我提供了我关心的 Twitter 账号的关注者数量。

该脚本只有 14 行,没什么复杂的,但是它可能节省我十分钟的加载网页和查找数字的时间。

你需要编辑 feed 数组以添加你关心的帐户:

  1. feeds = [
  2.         'centosproject',
  3.         'centos'
  4.         ];

注意:如果你在英语国家以外的地方运行它,则可能无法正常工作,因为它只是一个简单的屏幕抓取脚本,它读取 HTML 并查找其中包含的特定信息。因此,当输出使用其他语言时,正则表达式可能不匹配。

用法:

  1. [rbowen@sasha:community-tools/scripts]$ ./followers.py                                                                                                                                                                          
  2. centosproject: 11,479 Followers
  3. centos: 18,155 Followers

get_meetups

get_meetups 脚本S 另一种类别的脚本 —— API脚本。这个特定的脚本使用 meetup.com 网站的 API 来寻找在特定区域和时间范围内特定主题的聚会,以便我可以将它报告给我的社区。你所依赖的许多服务都提供了 API,因此你的脚本可以查找信息,而无需手动查找网页。学习如何使用这些 API 既令人沮丧又耗时,但是最终将获得可以节省大量时间的技能。

免责声明:meetup.com 已于 2019 年 8 月更改了他们的 API,我还没有将这个脚本更新到新的API,所以它现在实际上并没有工作。在接下来的几周内请关注此版本的修复版本。

centos-announcements.pl

centos-announcements.pl 脚本要复杂得多,而且对我的用例来说非常特殊,但你可能有类似的情况。在本例中该脚本查看邮件列表存档(centos-announce 邮件列表),并查找具有特定格式的邮件,然后生成这些邮件的报告。报告有两种不同的格式:一种用于我的每月新闻通讯,另一种用于安排 Twitter 信息(借助于 Hootsuite)。

我使用 Hootsuite 为 Twitter 安排内容,它们具有便捷的 CSV(逗号分隔值)格式,你可以一次批量安排整整一周的推文。从各种数据源(比如:邮件列表、博客、其他网页)自动生成 CSV 格式可以节省大量时间。但是请注意,这可能只应该用于初稿,然后你可以对其进行检查和编辑,以便最终不会自动发布你不想要内容的推文。

reporting.pl

reporting.pl 脚本也是相当特定的,以满足我的特殊需求,但是这个概念本身是通用的。我每月向 CentOS SIG(特殊兴趣小组)发送邮件,这些邮件计划在给定的月份报告。该脚本只是告诉我本月有哪些 SIG,并记录需要发送给他们的电子邮件。

但是,因以下两个原因,实际上并未发送该电子邮件。第一,我希望在消息发送之前对其进行编辑。第二,虽然发送电子邮件的脚本在过去很有效,但如今,很可能被当做垃圾邮件而被过滤。

总结

在这个存储库中还有一些其他脚本,这些脚本或多或少是针对我的特定需求的,但是我希望其中至少有一个脚本对你有用,并且希望这些脚本的多样性能激励你去自动化一些你自己的东西。 

 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2022-10-09 14:50:44

Python脚本

2022-02-17 13:03:28

Python脚本代码

2022-08-05 09:06:07

Python脚本代码

2022-07-11 10:08:19

系统管理任务自动化

2022-05-07 14:08:42

Python自动化脚本

2021-11-30 07:01:19

Python自动化脚本

2015-05-12 10:18:09

openstack开源分析

2010-12-06 09:59:58

2021-04-19 14:00:03

ExchangelibPython邮箱自动化管理

2019-08-14 10:49:20

Python编程语言代码

2020-12-25 07:28:13

GitOpsDevOps云基础架构

2011-08-25 09:33:25

MySQL运维

2014-03-11 11:10:10

PowerShell自动化脚本

2020-03-03 11:14:46

技术电脑人生第一份工作

2012-10-10 09:52:12

测试软件质量代码质量

2011-05-31 17:35:45

测试自动化QTP

2016-09-27 23:31:23

2013-08-28 10:38:01

2022-10-28 10:03:47

物联网楼宇自动化

2013-07-04 13:37:23

Java开发速度
点赞
收藏

51CTO技术栈公众号