自动化现在是一个热门话题。在我的日常工作中,作为一名站点可靠性工程师 (SRE),我的部分职责是尽可能多地自动化重复性任务。但是我们有多少人在日常非工作生活中这样做呢?今年,我专注于自动化消除苦差事,以便我们可以专注于重要的事情。
我作为一名刚入门的系统管理员最早了解的事情之一是 cron
。Cron 被广泛用于执行诸如轮换日志、启动和停止服务、运行实用程序作业等等。它几乎在所有 Unix 和 Linux 系统上都可用,并且是我认识的每位系统管理员用来帮助管理服务和服务器的东西。Cron 可以自动运行任何控制台应用程序或脚本,这使其非常非常灵活。

(Kevin Sonney, CC BY-SA 4.0)
我使用 cron 来获取电子邮件、运行过滤程序、确保服务正在运行、与 Habitica 等在线游戏互动以及更多。
以传统方式使用 cron
要开始使用 cron,您只需在命令行中键入 crontab -e
即可打开一个编辑器,其中包含您自己的当前 crontab
(或“cron 表”)文件(如果您以 root 身份执行此操作,您将获得系统 crontab)。这是保存作业计划以及何时运行内容的地方。David Both 已经 广泛 地撰写了关于文件格式以及如何使用它的文章,因此我不会在此处介绍。我要说的是,对于新用户来说,这可能有点吓人,而且设置定时有点麻烦。
介绍 crontab-ui
有很多很棒的工具可以帮助解决这个问题。我最喜欢的是 crontab-ui,这是一个用 Node.js 编写的 Web 前端,可以帮助管理 crontab 文件。要安装和启动 crontab-ui
以供个人使用,我使用了以下命令。
# Make a backup
crontab -l > $HOME/crontab-backup
# Install Crontab UI
npm install -g crontab-ui
# Make a local database directory
mkdir $HOME/crontab-ui
# Start crontab-ui
CRON_DB_PATH=$HOME/crontab-ui crontab-ui
完成此操作后,只需将您的 Web 浏览器指向 http://localhost:8000
,您将获得 crontab-ui Web 界面。首先要做的就是单击“从 Crontab 获取”以加载您可能拥有的任何现有作业。然后单击备份,以便您可以回滚您从现在开始所做的任何更改。

(Kevin Sonney, CC BY-SA 4.0)
添加和编辑 cron 作业非常简单。添加名称、您要运行的完整命令和时间(使用 cron 语法),然后保存。作为奖励,您还可以捕获日志,并将作业状态邮件设置为您选择的电子邮件。
完成后,单击保存到 Crontab。
我个人非常喜欢日志记录功能。使用 crontab-ui,您只需单击一个按钮即可查看日志,这在进行故障排除时非常有用。
我确实建议不要一直运行 crontab-ui,至少不要公开运行。虽然它确实具有一些基本身份验证功能,但它真的不应该暴露在您的本地机器之外。我不需要经常(再)编辑我的 cron 作业,所以我按需启动和停止它。
下次您需要编辑 crontab 时,请尝试 crontab-ui!
3 条评论