unix命令——crontab

cron——执行计划任务。在一定的时间执行指定的任务。

很显然,它是系统的一个守护进程,不过默认一般是没有开启的。需使用service crond start开启。


但不是直接使用该命令来指定计划任务,而使用crontab来编写crontab文件(每个用户均有一个crontab文件)来指明需要执行的计划任务。
crontab中的计划任务格式一般为:
<分><时><日><月><星期>
分:0-59
时:0-23
日:1-31
月:1-12
星期:1-7
task:一般是对应的其他命令

crontab命令格式如下
crontab [-u  user] -option


option有以下:
-l 列出所有的计划任务,格式为
-e 编写crontab文件(每个用户拥有一个单独的crontab文件)
-r 删除crontab文件


使用-e 对crontab文件进行编辑的时候,与vi的操作是一致的。不过当编辑结束以后,crontab将对编写的计划任务进行格式检查,如果格式不对将会报错。所以还是不要直接使用vi去编辑crontab文件,不过一般情况下也不允许直接编辑crontab文件。详见使用手册的提示:Each user can have their own crontab,  and though  these are files in /var/spool/ , they are not intended to be edited directly.(大意为:每个用户都有自己的crontab,虽然这些文件在/var/spool目录下,但是不能直接对它们进行编辑)

一个例子:

[root@localhost sharedfolder]# crontab -e

1-59 * * * * /bin/echo 'date' >> /home/sharedfolder/tem


(没有写注释,这个计划任务是每隔一分钟向tem文件中写入date)
(可以使用shell的注释符"#"编写对应的注释来对命令进行说明)
还有需要补充的是:
关于执行计划任务的权限问题。

如果系统中有cron.allow文件,则用户名在其中的用户所编写的crontab中的任务可以被执行,否则不行;
而如果系统中有cron.deny文件,与上面的意思相反,大家应该都懂得。
如果两者都没有的话,那就只有root用户的计划任务可以被执行。
不过,这两个文件的作用的优先级为cron.allow>cron.deny

你可能感兴趣的:(学习笔记)