当前位置: 首页 > 科技观察

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

时间:2023-03-13 08:07:30 科技观察

如果某件事必须做三次,请尝试将其自动化。我之前写过关于社区版主做什么的文章,如果你问10位社区版主,你会得到12个不同的答案。不过,大多数情况下,您会在任何特定时刻做社区需要您做的事情。而且很多东西可能是重复的。当我还是一名系统管理员时,我遵循一条规则:如果某件事情必须做三次,我会尝试将其自动化。当然,如今,有了像Ansible这样强大的工具,就有了一套完整的科学方法。我每天或每周做的一些事情包括在几个地方查找内容,然后生成信息摘要或报告以发布到其他地方。此类任务是自动化的理想候选者。这些并不太难,当我与同事分享其中一些脚本时,总有至少一个被证明是有用的。在GitHub上,我每周都会使用几个脚本。它们都不是很复杂,但每次都能节省我几分钟的时间。其中一些是用Perl编写的,因为我快50岁了(这些是我早年的)。有些是用Python编写的,因为几年前,我决定要学习Python。概述如下:tshirts.py这个简单的tshirts.py脚本将根据您要定制的活动T恤数量告诉您尺寸分布。它将这些维度分布在正态曲线(也称为“钟形曲线”)上,根据我的经验,这与普通会议观众的实际需求非常吻合。如果在美国使用,您可能需要将脚本中的值稍微调高一些,如果在欧洲使用,则可能需要稍微调小一些。您的情况可能有所不同。用法:[rbowen@sasha:community-tools/scripts]$./tshirts.py多少件衬衫?300对于总共300件衬衫,订单:30.0small72.0medium96.0large72.0xl30.02xlfollowers.pyfollowers.py该脚本为我提供了我关心的Twitter帐户的关注者数量。该脚本只有14行,并不复杂,但它可能为我节省了十分钟的加载网页和查找数字的时间。您需要编辑feeds数组以添加您关心的帐户:feeds=['centosproject','centos'];注意:如果您在英语国家以外的地方运行它,它可能无法正常工作,因为它只是一个简单的屏幕抓取脚本,它读取HTML并查找其中包含的特定信息。因此,当输出为其他语言时,正则表达式可能不匹配。用法:[rbowen@sasha:community-tools/scripts]$./followers.pycentosproject:11,479Followerscentos:18,155Followersget_meetupsget_meetupsScriptsS另一类脚本——API脚本。这个特定的脚本使用meetup.com网站的API来查找特定区域和时间范围内特定主题的聚会,这样我就可以向我的社区报告。您依赖的许多服务都提供API,因此您的脚本可以查找信息而不是手动查找网页。学习如何使用这些API可能会令人沮丧且耗时,但最终您将获得可以节省大量时间的技能。免责声明:meetup.com在2019年8月更改了他们的API,我还没有将这个脚本更新到新的API,所以它现在实际上不起作用。在接下来的几周内,请继续关注此版本的修复版本。centos-announcements.plcentos-announcements.pl脚本要复杂得多,并且非常适合我的用例,但您可能有类似的情况。在这个例子中,脚本查看邮件列表存档(centos-announce邮件列表)并查找具有特定格式的消息,然后生成这些消息的报告。报告有两种不同的格式:一种用于我的每月时事通讯,另一种用于安排Twitter提要(在Hootsuite的帮助下)。我使用Hootsuite为Twitter安排内容,他们有一个方便的CSV(逗号分隔值)格式,您可以在其中一次批量安排一整周的推文。从各种数据源(例如邮件列表、博客、其他网页)自动生成CSV格式可以节省大量时间。不过请注意,这可能只适用于初稿,您可以随后对其进行审查和编辑,以免最终自动发布您不想要的内容。reporting.plreporting.pl脚本也非常适合我的特定需求,但概念本身是通用的。我每月向CentOSSIG(特别兴趣小组)发送邮件,计划在给定月份进行报告。该脚本仅告诉我当月有哪些SIG并记录需要发送给他们的电子邮件。但是,由于以下两个原因,电子邮件实际上并未发送。首先,我希望在发送消息之前对其进行编辑。其次,虽然发送电子邮件的脚本在过去运行良好,但在今天,它们很可能被作为垃圾邮件过滤掉。总结这个存储库中还有一些其他脚本或多或少地满足我的需求,但我希望其中至少有一个对你有用,并且这些脚本的多样性会激励你自动化一些你自己的东西.