一次性:
at time:at后面接上的是时间,即分秒,输入之后,会要求你输入定时执行的命令。当语句输入完毕之后,按ctrl+D退出,该执行结果是不会在终端上显示的,而会发送邮件。通过
mailx的命令可以查看该邮件
time的格式:HH:mm YYYY-MM-DD遵循的格式是时分年月日的格式
-l:显示等待执行的计划任务
-c:查看计划任务的内容
-d JobID:可以删除计划任务,注意-d后面跟的是计划任务的ID,即使用-l选项查看的内容。
特殊的at用法:
at 14:14 tomorrow :表示明天的14点14分执行
at now+3minutes:表示三分钟后执行
同时minutes还可以改为hours或者days
echo 命令|at time :还可以通过这种将命令重定向给at命令的方式,避免交互的执行计划任务
周期性
corntab命令
输入crontab -e可以编辑一个计划任务,-u:是指定用户指定特殊的计划任务
它的每行的格式如下所示
分 时 日 月 星期 命令
如果我们要忽视其中的一个时间因素可以使用星号,下面是一些案例
每隔三小时执行:0 */3 * * * command :可以看到在“时位”下,有一个斜杆,斜杆后面有一个数字,其代表着虽然我忽略了特定的时钟,但是我要规定我必须每隔三小时就必须执行,也就是说,斜杆代表的是执行的间隔,当我们指定了”时位“上的时间,那么”分位“上的时间也必须指定。因为时是比分大的量,同样的若我们在”日位“上指定了数值,那么”时位“和”分位“上也必须指定数值,而不能用星号代替。
我们再看一个例子:0 1,2,3 * * * command :该命令代表着每天的1,2,3时执行该命令,可以看到逗号隔开了各个小时。正是因为可能逗号隔开的小时数太多,于是使用斜杆加数字的方式表示一段有规律的时间间隔。
0 0 3-20 * * command:该命令代表每月的3到20号的0时0分,执行该命令,我们可以使用”-“符号去代表一段时间,而省去了单个表示的麻烦。
注意!!!命令都必须给出完整路径,同时在crontab的编辑模式下,“%”具有特殊的用途,如果想要使用该符号的话,需要使用“/”进行转义。
我们还可以编辑etc目录下的crontab文件进行周期性计划任务的制定!!!,这个文件的格式已经给出,比较直观,我觉得比较好,对应的内容如下图所示:
总结
星号:代表着忽视的时间因素
逗号:多个时间之间的表示符号,如1,2,3
”-“:代表一段时间间隔
”/“:代表每隔多久
(转)
Linux /etc/cron.d作用(转自 定时任务crontab cron.d)
原文链接:http://huangfuligang.blog.51cto.com/9181639/1608549
一、cron.d增加定时任务
当我们要增加全局性的计划任务时,一种方式是直接修改/etc/crontab。但是,一般不建议这样做,/etc/cron.d目录就是为了解决这种问题而创建的。
例如,增加一项定时的备份任务,我们可以这样处理:在/etc/cron.d目录下新建文件backup.sh,内容如下:
# m h dom mon dow user command
* 1 * * * root /sbin/mon_zetc_logtar.sh
cron进程执行时,就会自动扫描该目录下的所有文件,按照文件中的时间设定执行后面的命令。
cron执行时,也就是要读取三个地方的配置文件:一是/etc/crontab,二是/etc/cron.d目录下的所有文件,三是每个用户的配置文件
二、控制对 cron 的使用
/etc/cron.allow 和 /etc/cron.deny 文件被用来限制对 cron 的使用。这两个使用控制文件的格式都是每行一个用户。两个文件都不允许空格。如果使用控制文件被修改了,cron 守护进程(crond)不必被重启。使用控制文件在每次用户添加或删除一项 cron 任务时都会被读取。
无论使用控制文件中的规定如何,根用户都总是可以使用 cron。
如果 cron.allow 文件存在,只有其中列出的用户才被允许使用 cron,并且 cron.deny 文件会被忽略。
如果 cron.allow 文件不存在,所有在 cron.deny 中列出的用户都被禁止使用 cron
三、启动或关闭
由于Cron 是Linux的内置服务,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
四、crontab介绍
/etc/crontab 文件中的每一行都代表一项任务,它的格式是:
minute hour day month dayofweek command |
minute — 分钟,从 0 到 59 之间的任何整数
-
hour — 小时,从 0 到 23 之间的任何整数
-
day — 日期,从 1 到 31 之间的任何整数(如果指定了月份,必须是该月份的有效日期)
-
month — 月份,从 1 到 12 之间的任何整数(或使用月份的英文简写如 jan、feb 等等)
-
dayofweek — 星期,从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日(或使用星期的英文简写如 sun、mon 等等)
-
command — 要执行的命令(命令可以是 ls /proc >> /tmp/proc 之类的命令,也可以是执行你自行编写的脚本的命令。)
在以上任何值中,星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在满足其它制约条件后每月都执行该命令。
整数间的短线(-)指定一个整数范围。譬如,1-4 意味着整数 1、2、3、4。
用逗号(,)隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明这四个指定的整数。
正斜线(/)可以用来指定间隔频率。在范围后加上 /<integer> 意味着在范围内可以跳过 integer。譬如,0-59/2可以用来在分钟字段定义每两分钟。间隔频率值还可以和星号一起使用。例如,*/3 的值可以用在月份字段中表示每三个月运行一次任务。
开头为井号(#)的行是注释,不会被处理