如何找到 Ubuntu 上的 cron 实施情况?

如何找到 Ubuntu 上的 cron 实施情况?

维基百科

随着 GNU 项目和 Linux 的出现,新的 cron 出现了。其中最流行的是 Vixie cron,最初由 Paul Vixie 于 1987 年编写。Vixie cron 的版本 3 于 1993 年末发布。版本 4.1 更名为 ISC Cron,并于 2004 年 1 月发布。版本 3,有一些小错误修复,用于大多数 Linux 和 BSD 发行版。

2007 年,红帽将 vixie-cron 4.1 分叉到 cronie 项目,并于 2009 年纳入 anacron 2.3。

其他流行的实现包括 anacron 和 dcron。然而,anacron 并不是一个独立的 cron 程序。另一个 cron 作业必须调用它。 dcron 由 DragonFly BSD 创始人 Matt Dillon 开发,其维护工作由 Jim Pryor 于 2010 年接管。 [9]

webcron 解决方案安排环任务定期运行,只要 cron 实现在 Web 托管环境中不可用。

在 Lubuntu 18.04 上,我尝试弄清楚我的 cron 实现是什么,就像安装的任何其他软件一样,但失败了:

$ cron --version
cron: invalid option -- '-'
usage: cron
$ crontab --version
crontab: invalid option -- '-'

我很少很难找到已安装程序的版本,并且想知道为什么这对我来说很难?我该如何找到它?

谢谢。

答案1

尝试man cron。它将我的系统(Ubuntu 18.04)的 cron 识别为 Vixie Cron。

答案2

对于 Ubuntu,最好查找一下哪个包提供了该crontab命令,而不是cron命令,它甚至可能不存在。默认值由软件包 (Vixie cron) 提供cron,但至少还存在其他两个替代方案:

~ aptitude search '~Pcron'
p   bcron-run     - Bruce's cron system
i   cron          - process scheduling daemon
p   cron:i386     - process scheduling daemon
p   systemd-cron  - systemd units to provide cron daemon & anacron functionality

下界bcron也不systemd-cron提供一个/usr/sbin/cron二进制文件(bcron命令均以bcron) 开头,但都提供crontab命令和/etc/crontab文件。

答案3

您可以随时使用搜索功能软件包.ubuntu.com您可以在其中找到您的版本的当前版本(尽管如果您尚未应用更新,您的本地系统可能会落后)。这通常包括指向上游包的链接。

要找出哪个包,您可能会dpkg --search /usr/sbin/cron(或在任何type cron指向二进制文件的地方)。

如果是计划任务,你会被指向国际标准委员会的网站。

如果您想直接调查源代码,您还可以apt-get source cron获取用于为您的系统构建 cron 的源代码。

答案4

没有一种解决方案可以适用于所有软件包。

对于 Ubuntu 18.04,您可以使用他们的网站:

https://packages.ubuntu.com/bionic/cron

它有一个版权文件的链接,显示它是 Vixie cron。

您还可以检查二进制文件:

% strings /usr/sbin/cron | grep Vix 
@(#) Copyright 1988,1989,1990,1993,1994 by Paul Vixie

在 RedHat 7 及其衍生版本上,strings二进制文件上的 a 显示它是 ISC

% strings /usr/sbin/crond | grep Cron | head -1
@(#) ISC Cron V4.1

相关内容