维基百科说
随着 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