对是否使用 python 进行系统管理感到困惑

Mir*_*age 4 python bash

我在 bash 中做备份,我也写了一些其他的 bash 脚本。我想将其转换为 Python,因为我需要为 AI 技术学习 Python,而我总是在拖延。因为我必须经常做 sys admin 的事情,所以我想如果我用 python 做事情,那么它会擅长 python。现在我对几件事感到困惑

1)我已经看到我可以在 bash 中用 1 行代码做事情,但是在 python 中,我需要为此编写 15 行代码。例如,制作 tar 球备份。sed,awk 可以过滤文件,而在 python 中,我必须写更多行。所以我的问题是我走错了路。python 是否真的用于系统管理的东西。对我来说,这就像在 J2EE 中而不是在纯 html 中制作一个 5 页的静态网站。

2)我想知道如果bash可以做所有事情,为什么人们应该选择python。我只是在谈论系统管理员的事情。

所以我需要知道我是通过尝试使用 python 来自杀还是仅仅因为我还在学习我发现它很困难?

我只想知道 python 是否真的意味着备份、检查日志文件等。

Bac*_*its 7

Python 是一种通用脚本语言,就像 Perl 一样。这意味着它是比 bash 脚本更强大的工具,但这也意味着语法通常会更冗长,编写脚本会更复杂。Bash 脚本具有特定于域的优势,这意味着它们做出了很多假设,使大多数任务变得更容易。但是,如果 bash 所做的假设不适合您需要执行的任务,您可能需要走很长的路才能使事情按照您需要的方式工作。

这与 Windows 系统管理员在处理批处理或 VBScript 编写时曾经面临的问题相同。PowerShell 有助于缓解这种情况,但您仍然面临“这项任务是否复杂到需要 PowerShell,或者批处理脚本是否足以可靠地完成工作?”的问题。

实际上,它确实取决于您需要执行的任务。如果使用 Python 编写和维护任务更容易,请使用它。如果 bash 实际上非常简单,请使用它。脚本语言是工具。像这样使用它们。使用最适合您的任务要求的工具。

在编写脚本时,我有一个心理清单:

  1. 我要完成的任务究竟是什么?第一步总是定义问题。
  2. 我用哪种语言编写这个脚本更快?我的时间很宝贵。
  3. 哪种语言更适合其他人阅读、理解和支持此任务?其他人的时间也很宝贵。
  4. 哪种语言会带来更健壮、更可靠或更长期的修复?我想写一次,让它永远修复。
  5. 有什么使语言不合适的地方吗?Python 或 PowerShell 是否不可用,或者某些模块将不会安装?我的批处理文件或 bash 脚本是否会调用不能保证存在且我无法使用脚本维护的程序?

  • @Mirror51:2 个示例(很多),一个 bash 脚本用于 grep 与 psql 数据库有某种关系的数千个文件;该任务变得越来越复杂,并被移植到 Python 中。这提高了性能,甚至让我们可以轻松编写 Web 用户界面来补充 CLI 界面;另一个例子(更一般的):你有一个脚本可以在多个服务器上做事;服务器和要运行的命令要么存储在配置文件中,要么存储在脚本中编码的数组中。如果您将脚本迁移到 python,由于其清晰的语法,这些东西会变得更容易和更清晰 (2认同)
  • @Mirror51 为了扩展 Python 何时可能更好,假设我有一个需要查询 LDAP 服务器或 SQL 服务器的脚本。Python 有内置模块可以做到这一点,并且可以很容易地处理结果,因为变量是记录集对象。使用 bash 脚本会更困难,因为您可能必须处理大型记录集的临时文件管理和使用正则表达式解析字符串。由于数据异常(哦,不,姓氏连字符!),这总是有可能导致错误。 (2认同)