Linux新手学堂 Crontab命令的语法
crontab 命令的用途就是:提交、编辑、列出或除去 cron 作业。
语法
crontab [ -e [UserName] | -l [UserName] | -r [UserName] | -v [UserName] | File ]
描述
crontab 命令提交、编辑、列出或除去 cron 作业。一个 cron 作业是一个命令,其运行是由 cron 守护程序在规则的调度间隔执行的。要提交一个 cron 作业,指定 crontab 命令用 -e 标志。crontab 命令调用一个编辑会话,允许创建一个 crontab 文件。在这个文件中,为每个 cron 创建条目。每个条目必须是一种 cron 守护程序可接受的格式。要得到创建条目的信息,参阅 crontab 文件条目格式。
当创建完条目和退出文件后,crontab 命令将它复制到 /var/spool/cron/crontabs 目录,并把它放到一个文件中,此文件的名称是当前的用户名。如果以用户名命名的文件已存在于 crontabs 目录中,crontab 命令会覆盖它。
同样的,可以通过指定文件参数创建 crontab 文件。如果此文件已经存在,格式必须是 cron 守护程序所需要的。如果文件不存在,crontab 命令就调用编辑器。如果 EDITOR 环境变量存在,此命令就调用它指定的编辑器。否则,crontab 命令调用 vi 编辑器。
要列出 crontab 文件的内容,就指定 crontab 命令并采用 -l 标志。要除去存在的文件,采用 -r 标志。
可选的 UserName 参数可被 crontab 文件的所有者或者 root 用户来使用,为指定的用户编辑、列出、除去或验证 cron 作业的状态。如果 UserName 是无效的,就会产生错误消息并退出程序。如果可选的 UserName 参数没有被指定,这个 crontab 标志对于 root 用户和当前用户可用。
安全性
只有 root 用户和 crontab 文件的所有者可以在 -e、-l、-r 和 -v 标志后面使用 UserName 以编辑、列出、除去或验证指定用户的 crontab 文件。
cron 守护程序
这个 cron 守护程序运行的命令和 crontab 文件条目是相对应的。如果不重新定向 cron 作业的输出为标准输出或标准错误,cron 守护程序就会通过电子邮件告知您任何命令输出或错误。如果在 crontab 文件中指定了不正确的 cron 作业,这个 cron 守护程序不运行这个作业。
cron 守护程序只在 cron 守护程序被初始化时检查 crontab 文件。当用 crontab 命令改变 crontab 文件时,指示变化的消息被发送到 cron 守护程序。这消除了在规则的调度间隔检查新的或改变的文件的开销。
控制使用 crontab 命令
/var/adm/cron/cron.allow 和 /var/adm/cron/cron.deny 文件控制哪一个用户可以使用 crontab 命令。root 用户可以创建、编辑或删除这些文件。这些文件中的条目是用户登录名,每行一个名称。如果登录标识和多个的登录名称相关联,这个 crontab 命令采用第一个在 /etc/passwd 文件中的登录名称,而不管当前实际使用哪一个登录名称。而且,要允许用户启动 cron 作业,应该使用 chuser 命令将 /etc/security/user 文件中的守护程序属性设置为 TRUE。
以下关于 cron.allow 文件的一个示例:
root nick dee sarah
如果 cron.allow 文件存在,只有在文件中出现其登录名称的用户可以使用 crontab 命令。root 用户的登录名必须出现在 cron.allow 文件中,如果这个文件存在的话。系统管理员可以明确的停止一个用户,通过使用 crontab 命令,同时在 cron.deny 文件中列出用户的登录名。如果只有 cron.deny 文件存在,任一名称没有出现在这个文件中的用户可以使用 crontab 命令。
如果以下一个条件成立,用户将不能使用 crontab 命令:
cron.allow 文件和 cron.deny 文件不存在(只允许 root 用户)。
cron.allow 文件存在,但用户的登录名并不列在其中。
cron.deny 文件存在,并且用户的登录名列在其中。
如果 cron.allow 和 cron.deny 文件都不存在,只有被 root 用户授权的人可以用 crontab 命令提交一个作业。
crontab 文件条目格式
一个 crontab 文件包含每个 cron 作业的条目。条目由换行字符分开。每个 crontab 文件条目包括 6 个字段,它们被空格或制表符以以下格式分开:
分 时 日期 月 星期 command
这些字段接收以下值:
分 0 到 59
时 0 到 23
日期 1 到 31
月 1 到 12
星期 0 到 6 (星期日到星期六)
command shell 命令
必须为每个字段指定一个值。除了 command 字段,这些字段可以包含以下内容:指定范围内的一个数。要在 5 月运行一个命令,在 month 字段指定 5 。
两个被破折号分开的数目表明了包含的范围。要从星期二到星期五运行 cron 作业,把 2-5 放到 weekday 字段中。 由逗号隔开的数字列表。要在一月第一天和最后一天的运行命令,在 day_of_month 字段中可指定 1,31。
*(星号),意味着所有的允许值。要每个小时运行一个作业,在小时字段指定一个星号。
注: 任一字符前如有一个反斜杠符号(包括 %)会引起字符被字面上的处理。天的规范是由两个字段(月的天和星期的天)组成的。如果指定两者都为元素的一个列表,这两个字段均被包含在其中。例如,如下条目:
0 0 1,15 * 1 command
将在每个月的第一天和第十五天运行 command,还有每个星期一。要仅在一个字段中指定天,另一字段应包含 * 。
指定命令
这个 cron 守护程序运行命名于所选日期和时间的第六个字段中的字段。如果包含一个 % (百分号)在第六字段,cron 守护程序像命令调用一样处理所有的任务,并使所有的后续任务在标准输入上可用,除非转义百分号 (\%)。空行和第一个非空字符是编号标记(#)将被忽略。如果命令含有反斜杠 (\) 的参数,反斜杠前应加另一个反斜杠。
注:shell 只运行该命令字段的第一行。所有其他的行作为标准的输入对于命令可用。
cron 守护程序从 HOME 目录中启动一个子 shell。如果调度一个命令运行,这时您尚未登录,并且希望在 .profile 文件中的命令运行,这个命令必须明确的读取您的 .profile 文件。
cron 守护程序为每个 shell 提供了一个缺省的环境,定义了 HOME, LOGNAME, SHELL (=/usr/bin/sh) 和 PATH (=/usr/bin)。
标志
-e UserName 编辑用户的 crontab 文件的副本,或者,如果一个有效的 UserName 的 crontab 文件不存在则创建一个空的文件进行编辑。当编辑完成后,文件被到 crontab 目录作为用户的 crontab 文件。
-l UserName 列出用户的 crontab 文件。
-r UserName 从 crontab 目录除去用户的 crontab 文件。
-v UserName 列出用户 cron 作业的状态。
安全性
审计事件:如果审计子系统已经被正确的配置和启用,crontab 守护程序就会当每次执行命令时产生以下审计记录(或事件):
事件 信息
CRON_JobRemove 列出哪一个用户除去了 cron 作业和除去的时间。
CRON_JobAdd 列出哪一个用户添加了 cron 作业和添加的时间。
有关如何正确选择和分组审计事件以及如何配置审计事件数据收集的更详细信息,请参阅 《安全性》 中的 Setting up Auditing。
退出状态
该命令返回以下退出值:
0 成功完成。
>0 发生错误。
示例
要将名为 mycronjobs 的文件复制到 /var/spool/cron/crontabs 目录中,输入以下内容:
crontab mycronjobs
文件将复制为:
/var/spool/cron/crontabs/<username>
其中 <username> 是您当前的用户名。
要每小时将时间写入控制台(以小时的形式),请输入:
0 * * * * echo The hour is `date` .>/dev/console
要在每个星期一、星期三和星期五的 6:30 a.m. 运行 calendar 命令,请输入:
30 6 * * 1,3,5 /usr/bin/calendar
要在一年中每天 6:30 运行 calendar 命令,请输入:
30 6 * * * /usr/bin/calendar
要在八月每天午夜运行名为 maintenance 的脚本,请输入:
0 0 * 8 * /u/harry/bin/maintenance
为命令的标准输入定义文本,请输入:
0 16 * 12 5 /usr/sbin/wall%HAPPY HOLIDAY!%Remember to turn in your time card.
在% (百分号)之后定义 wall 命令的标准输入的文本:
HAPPY HOLIDAY! Remember to turn in your time card.
文件
/var/adm/cron/FIFO 指定的管道,当用 crontab 或 at 命令提交新作业时,它将消息发送到 cron 守护程序。
/var/spool/cron/crontabs 指定 crontab 缓冲池区域。
/var/adm/cron/cron.allow 指定用户列表,这些用户被允许访问 crontab 命令。
/var/adm/cron/cron.deny 指定用户列表,这些用户不被允许访问 crontab 命令。
Linux新手学堂 Crontab命令的语法的更多相关文章
- 转 linux任务调度之crontab命令
crontab命令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行. 在 ...
- linux定时任务:crontab命令
crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查 ...
- Linux 设置定时任务crontab命令
1. crontab命令概念 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使 ...
- Linux中使用crontab命令定时执行shell脚本或其他Linux命令
使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令.例如系统管理员安排一个备份任务使其每天都运行 如何往 cron 中添加一个作业? # crontab –e0 5 * ...
- Linux中的crontab命令用法
Crontab 在linux中,crontab的用来设置定期执行指定的命令,我们可以用它来指定一些需要重复的事情,Linux系统的用户只需将想要定期要执行的命令序列加到crontab文件中,操作系统即 ...
- Linux 定时任务调度(crontab命令)
crond 是Linux下用周期性的执行某种任务或者等待处理某些事件的一个守护进程,crond 进程会每分钟定期检查是否有要执行的任务,如果有要执行的任务则自动执行该任务 Linux 下的任务调度 系 ...
- 关于linux环境下crontab命令环境变量的问题
这几天在弄数据库备份的事情,其中涉及到使用crontab命令自动执行shell脚本的问题,发现将写好的数据库导出脚本export.sh ################################ ...
- Linux下使用crontab命令配置定时任务
一.语法结构 crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ] 说明 : crontab 是用来让使用者在 ...
- Linux下通过crontab命令来实现定时任务
一.crond的介绍 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动cr ...
随机推荐
- Struts2部署在Websphere上的问题
配置Mapped Filter:可以解决Struts2的项目部署在WebSphere6.1下面,发生Action找不到的情况. 应用程序服务器>[选择所使用的服务器]>Web 容器设置&g ...
- sql 去除列中内容的单引号
update [dbo].[历史数据补全$] set bankCardNo=replace(bankCardNo,'''','') 总共4个单引号,外边2个是字符串固有的2个,里边两个就表示是一 ...
- 10.Java设计模式 工厂模式,单例模式
Java 之工厂方法和抽象工厂模式 1. 概念 工厂方法:一抽象产品类派生出多个具体产品类:一抽象工厂类派生出多个具体工厂类:每个具体工厂类只能创建一个具体产品类的实例. 即定义一个创建对象的接口(即 ...
- Mysql触发器总结
触发器(trigger):监视某种情况,并触发某种操作. 触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/befo ...
- 夺命雷公狗ThinkPHP项目之----企业网站23之网站前台二级分类的跳转(URL跳转到列表页或产品页)
我们现在开始做实现我们的二级菜单如何跳转到指定的列表页或者产品也呢?? 我们分享下数据库情况: 我们的数据库里提前给我们预留了一个cate_type的字段,那么我们可以让这个字段进行判断,从而遍历出指 ...
- 夺命雷公狗---微信开发58----微网站之jquery_mobile之控件介绍
我们上一节课里面介绍了基本的jqm是如何用的了,那么这一节课我们就开始玩玩他的控件 1...布局网格 <!DOCTYPE html> <html> <head> & ...
- overfit & underfit
原文:http://blog.csdn.net/yhdzw/article/details/22733317 过拟合:1)简单理解就是训练样本的得到的输出和期望输出基本一致,但是测试样本输出和测试样本 ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON FillUp2
zw版[转发·台湾nvp系列Delphi例程]HALCON FillUp2 procedure TForm1.Button1Click(Sender: TObject);var op : HOpera ...
- android 学习随笔十二(网络:使用异步HttpClient框架)
使用异步HttpClient框架发送get.post请求 在https://github.com/ 搜索 asyn-http https://github.com/search?utf8=✓& ...
- 在路由器 RT-AC68U 使用自定义 DDNS 用 3322.org 动态域名的方法
0.使用华硕的第三方固件 -- 梅林固件 , 具体更新固件方法不在本主题述说 1.打开 jffs, 以便启动时可以自动执行脚本 2.在 /jffs/scripts 下新建 ddns-start 文件. ...