在 Linux 中安全且轻松地管理 Cron 定时任务
创始人
2024-03-02 00:25:55
0

在 Linux 中遇到计划任务的时候,你首先会想到的大概就是 Cron 定时任务了。Cron 定时任务能帮助你在类 Unix 操作系统中计划性地执行命令或者任务。也可以参考一下我们之前的一篇《关于 Cron 定时任务的新手指导》。对于有一定 Linux 经验的人来说,设置 Cron 定时任务不是什么难事,但对于新手来说就不一定了,他们在编辑 crontab 文件的时候不知不觉中犯的一些小错误,也有可能把整个 Cron 定时任务搞挂了。如果你在处理 Cron 定时任务的时候为了以防万一,可以尝试使用 Crontab UI,它是一个可以在类 Unix 操作系统上安全轻松管理 Cron 定时任务的 Web 页面工具。

Crontab UI 是使用 NodeJS 编写的自由开源软件。有了 Crontab UI,你在创建、删除和修改 Cron 定时任务的时候就不需要手工编辑 Crontab 文件了,只需要打开浏览器稍微操作一下,就能完成上面这些工作。你可以用 Crontab UI 轻松创建、编辑、暂停、删除、备份 Cron 定时任务,甚至还可以简单地做到导入、导出、部署其它机器上的 Cron 定时任务,它还支持错误日志、邮件发送和钩子。

安装 Crontab UI

只需要一条命令就可以安装好 Crontab UI,但前提是已经安装好 NPM。如果还没有安装 NPM,可以参考《如何在 Linux 上安装 NodeJS》这篇文章。

执行这一条命令来安装 Crontab UI。

$ npm install -g crontab-ui

就是这么简单,下面继续来看看在 Crontab UI 上如何管理 Cron 定时任务。

在 Linux 上安全轻松管理 Cron 定时任务

执行这一条命令启动 Crontab UI:

$ crontab-ui

你会看到这样的输出:

Node version: 10.8.0
Crontab UI is running at http://127.0.0.1:8000

首先在你的防火墙和路由器上放开 8000 端口,然后打开浏览器访问

注意,默认只有在本地才能访问到 Crontab UI 的控制台页面。但如果你想让 Crontab UI 使用系统的 IP 地址和自定义端口,也就是想让其它机器也访问到本地的 Crontab UI,你需要使用以下这个命令:

$ HOST=0.0.0.0 PORT=9000 crontab-ui
Node version: 10.8.0
Crontab UI is running at http://0.0.0.0:9000

Crontab UI 就能够通过 :9000 这样的 URL 被远程机器访问到了。

Crontab UI 的控制台页面长这样:

从上面的截图就可以看到,Crontab UI 的界面非常简洁,所有选项的含义都能不言自明。

在终端输入 Ctrl + C 就可以关闭 Crontab UI。

创建、编辑、运行、停止、删除 Cron 定时任务

点击 “New”,输入 Cron 定时任务的信息并点击 “Save” 保存,就可以创建一个新的 Cron 定时任务了。

  1. 为 Cron 定时任务命名,这是可选的;
  2. 你想要执行的完整命令;
  3. 设定计划执行的时间。你可以按照启动、每时、每日、每周、每月、每年这些指标快速指定计划任务,也可以明确指定任务执行的具体时间。指定好计划时间后,“Jobs” 区域就会显示 Cron 定时任务的句式。
  4. 选择是否为某个 Cron 定时任务记录错误日志。

这是我的一个 Cron 定时任务样例。

如你所见,我设置了一个每月清理 pacman 缓存的 Cron 定时任务。你也可以设置多个 Cron 定时任务,都能在控制台页面看到。

如果你需要更改 Cron 定时任务中的某些参数,只需要点击 “Edit” 按钮并按照你的需求更改对应的参数。点击 “Run” 按钮可以立即执行 Cron 定时任务,点击 “Stop” 则可以立即停止 Cron 定时任务。如果想要查看某个 Cron 定时任务的详细日志,可以点击 “Log” 按钮。对于不再需要的 Cron 定时任务,就可以按 “Delete” 按钮删除。

备份 Cron 定时任务

点击控制台页面的 “Backup” 按钮并确认,就可以备份所有 Cron 定时任务。

备份之后,一旦 Crontab 文件出现了错误,就可以使用备份来恢复了。

导入/导出其它机器上的 Cron 定时任务

Crontab UI 还有一个令人注目的功能,就是导入、导出、部署其它机器上的 Cron 定时任务。如果同一个网络里的多台机器都需要执行同样的 Cron 定时任务,只需要点击 “Export” 按钮并选择文件的保存路径,所有的 Cron 定时任务都会导出到 crontab.db 文件中。

以下是 crontab.db 文件的内容:

$ cat Downloads/crontab.db
{"name":"Remove Pacman Cache","command":"rm -rf /var/cache/pacman","schedule":"@monthly","stopped":false,"timestamp":"Thu Aug 23 2018 10:34:19 GMT+0000 (Coordinated Universal Time)","logging":"true","mailing":{},"created":1535020459093,"_id":"lcVc1nSdaceqS1ut"}

导出成文件以后,你就可以把这个 crontab.db 文件放置到其它机器上并导入成 Cron 定时任务,而不需要在每一台主机上手动设置 Cron 定时任务。总之,在一台机器上设置完,导出,再导入到其他机器,就完事了。

在 Crontab 文件获取/保存 Cron 定时任务

你可能在使用 Crontab UI 之前就已经使用 crontab 命令创建过 Cron 定时任务。如果是这样,你可以点击控制台页面上的 “Get from crontab” 按钮来获取已有的 Cron 定时任务。

同样地,你也可以使用 Crontab UI 来将新的 Cron 定时任务保存到 Crontab 文件中,只需要点击 “Save to crontab” 按钮就可以了。

管理 Cron 定时任务并没有想象中那么难,即使是新手使用 Crontab UI 也能轻松管理 Cron 定时任务。赶快开始尝试并发表一下你的看法吧。


via: https://www.ostechnix.com/how-to-easily-and-safely-manage-cron-jobs-in-linux/

作者:SK 选题:lujun9972 译者:HankChow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

编写CentOS系统下的B...
面对重复繁琐的服务器操作,手动输入命令效率低下且易出错。为了解决这...
2025-06-15 08:43:24
CentOS默认邮件配置位...
CentOS系统自带邮件服务功能解析 作为Linux服务器常用发行...
2025-03-01 23:21:47
部署后,CRON任务未按照...
解决此问题的方法取决于您的具体应用和环境。下面是一个通用的解决方案...
2025-01-07 16:00:39
不确定为什么我的Ubunt...
在Ubuntu 16.04上,cron作业可能不会在重启后自动运行...
2024-12-27 22:01:29
Bullseye升级--c...
在Bullseye中,systemd默认在用户级别下执行cron任...
2024-12-26 16:30:20
Bulljob在cron中...
确认是否正确引入了 bull、bull-board 和 cron ...
2024-12-26 16:01:06

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...