长话短说:我不小心删除了 64 位 Ubuntu 20.04 安装程序在我的计算机上安装 Ubuntu 期间放入的默认内容/etc/crontab
,所以现在我试图找出是否有可能从Ubuntu ISO 安装文件的内部(例如“本地存储库”,例如ubuntu-20.04-amd64.iso
)或远程存储库(例如托管在 ubuntu.com 或其他地方),因此我可以将此默认crontab
文件放回/etc
.
我安装了 Ubuntu 20.04 ISO 并在其中运行sudo ls -lR | grep -i crontab
,但没有crontab
找到文件,因此我想它可能被压缩在此类 ISO 文件中的一个文件中,或者系统 crontab可以在 ubuntu 的某个地方下载.com 网络或 Launchpad 的 PPA:我只是不知道。
长话短说:在使用流水线时|
,为了将命令的 1 行输出附加到/etc/crontab
,我不小心输入了:
| sudo tee /etc/crontab
...代替:
| sudo tee -a /etc/crontab
...因此最终/etc/crontab
仅用 1 行替换了 的全部内容,而不是将这样的 1 行添加到此类文件的末尾。绝望!
不过,幸运的是,这是我第一次尝试修改此类文件,因此其内容是 Ubuntu 在安装过程中创建的默认内容。但它的内容是什么?
我决定运行info crontab
并发现似乎是相同的默认内容/etc/crontab
(但我不太确定):
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# Example of job definition:
#.-------------<-------- minute (0 - 59)
#| .------------<------- hour (0 - 23)
#| | .-----------<------ day of month (1 - 31)
#| | | .----------<----- month (1 - 12) OR jan,feb,mar,apr ...
#| | | | .---------<---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
#| | | | | .-------<--- user
#| | | | | | .--<-- command
#| | | | | | |
#v v v v v v v
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
/etc/crontab
然后我决定用 owner:group = root:root ( sudo chown root:root /etc/crontab
)将上面的代码保存在一个全新的文件中,然后用sudo chmod 755 /etc/crontab
. 在我这样做之后,我还创建了它的备份副本,sudo cp /etc/crontab /etc/crontab.bak
并创建了它的骨架(即模板)sudo cp /etc/crontab /etc/skel/crontab
......
...但我不禁想知道上面的代码是否确实与 Ubuntu 20.04 安装程序/etc/crontab
在 Ubuntu 安装期间在其中创建的代码完全相同,我也不知道如何获取此类原始/默认文件的精确副本(如果有的话)。
在我的 ubuntu 20.04 桌面上 /etc/crontab 内容如下
除了更改 /etc/crontab 文件,您还可以考虑在某些目录中添加文件
似乎代码可以在这里找到:https ://git.launchpad.net/ubuntu/+source/cron/tree/debian/crontab.main
如果您已安装 cron 或至少有一个包含该文件的软件包,您可以通过以下方式找到该软件包:
接下来,下载软件包并将其解压缩到自定义文件夹(DEBIAN 文件夹也位于 /var/lib/dpkg/info 中):
$_
是上一个命令中最后一个参数的缩写。