常用命令举例:
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
(default operation is replace, per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontab)
-s (selinux context)
FreeBSD 最有用的软件包(utilities)中的一个是 cron(8)。 cron
软件在后台运行并且经常检查 /etc/crontab
文件。cron
软件也检查 /var/cron/tabs
目录,搜索新的 crontab
文件。这些 crontab
文件存储一些 cron
在特定时间执行任务的信息。
cron
程序使用两种不同类型的配置文件, 即系统 crontab 和用户 crontabs。 两种格式的唯一区别是第六个字段。 在系统 crontab 中,第六个字段是用于执行命令的用户名。 这给予了系统 crontab 以任意用户身份执行命令的能力。 在用户 crontab 中, 第六个字段是要执行的命令, 所有的命令都会以这个用户自己的身份执行; 这是一项重要的安全功能。
注意:
同其他用户一样, root
用户也可以有自己的 crontab。 它不同于 /etc/crontab
(也就是系统 crontab)。 由于有系统 crontab 的存在, 通常并不需要给 root
建立单独的用户 crontab。
让我们来看一下 /etc/crontab
文件:
# /etc/crontab - root's crontab for FreeBSD # # $FreeBSD: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $ # # SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/var/log # # #minute hour mday month wday who command # # */5 * * * * root /usr/libexec/atrun
像大多数 FreeBSD 配置文件一样, | |
首先应该定义环境变量。等号 ( | |
这一行定义了七个字段。它们是 | |
最后一行定义了上面所说的值。注意这里我们有一个 命令可以有任意多个传递给它们的标志。无论怎样, 扩展到多行的命令应该用反斜线(“\”)来续行。 |
这是每个 crontab
文件的基本设置, 虽然它们有一个不同。第六行我们指定的用户名只存在于系统 /etc/crontab
文件。这个字段在普通用户的 crontab
文件中应该被忽略。
重要:
绝对不要用这种方法来编辑/安装系统 crontab。 您需要做的只是使用自己喜欢的编辑器: cron
程序会注意到文件发生了变化, 并立即开始使用新的版本。参见 这个 FAQ 项目 以了解进一步的情况。
要安装刚写好的用户 crontab
, 首先使用最习惯的编辑器来创建一个符合要求格式的文件,然后用 crontab
程序来完成。最常见的用法是:
%
crontab crontab-file
在前面的例子中, crontab-file
是一个事先写好的 crontab
。
还有一个选项用来列出安装的 crontab
文件: 只要传递 -l
选项给 crontab
然后看一下输出。
用户想不用模板(已经存在的文件)而直接安装他的 crontab 文件,用 crontab -e
选项也是可以的。 它将会启动一个编辑器并且创建一个新文件,当这个文件被保存的时候, 它会自动的用 crontab
来安装这个文件。
如果您稍后想要彻底删除自己的用户 crontab
可以使用 crontab
的 -r
选项。