1.
作业可以使用cron在一个特定的时间运行。
它服务于两种类型的作业,由crontab或at命令发出的。
crontab命令创建一个文件,列在文件中的程序被有规律地执行。
at命令创建的文件在程序执行后被删除,所以任何at命令程序只执行一次。
crontab进程在启动时运行级2启动。它在启动时读取创建在/var/spool/cron目录中的crontab和at文件。
2.
cron
cron进程在运行级2启动并在运行级停止,一个在/etc/rc.config.d/cron文件中CRON变量控制该进程是否在引导时启动。如果这个变量为1,该进程在引导时启动,而如果是0就不启动。
cron进程的启动脚本是/sbin/init.d/cron并且一般在引导时被执行,可以用start和stop控制。
这个脚本的启动和关闭的链接文件是/sbin/rc2.d/S730cron和/sbin/rc1.d/K270cron。
如果你直接对任何一个配置文件手工作修改,你需要停止和重启cron脚本,让它重读配置文件。
如果你使用crontab命令来编辑一个配置文件,改命令自动更新cron安排并且不需要重新启动该进程。
对普通的系统用户,有两个文件用于允许/拒绝访问cron进程。它们使/var/adm/cron/cron.allow和deny。
这里我们简称为allow跟deny,来分析它们的存在对使用cron文件的影响:
如果allow不存在,deny也不存在,只有root可以使用cron。
如果allow不存在,deny存在,所有用户都可以使用cron(除了定义在deny中的用户,为空表示allow全部)。
如果allow存在不为空,无论deny存在与否都只有allow文件中列出的用户可以使用cron。
如果allow存在为空,无论deny存在与否都只有root用户可以使用cron。
同样的,at命令的规则也类似。
cron进程在/var/adm/cron目录中创建它的日志文件,/var/adm/cron/log文件用于登记所有cron行为。
crontab mycrontab
如果以moko登录并在主目录中有一个文件mycrontab,以上的命令就是在/var/spool/cron/crontabs目录创建一个以moko为名和mycrontab有相同内容的文件。
*/10 12 * * * date #每天的12点每10分钟执行date命令
第一个域为分钟,第二个为小时,第三个为日期,第四个为月份,第五个为星期,第六个为执行的命令或脚本文件
一个星号表示所有的值,1-5表示一个范围,*/10表示每10分钟。
如果多个值在一个域中,通过逗号分隔。
星期是以0-6为标志的,0为星期天,6为星期六。
crontab命令有几个选项:
- -l #列出用户当前crontab文件的内容
- -e #编辑crontab文件
- -r #为一个用户删除crontab文件
crontab参考:http://moko39848381.blog.163.com/blog/static/139827331201021111143330/
3.
at命令:
和重复执行作业的crontab相比,at命令用于在一个特定的时间只执行作业一次。
cron守护进程负责在需要的时间执行at作业。
一个脱机的at作业记录生成在/var/spool/cron/atjobs目录中,这里每一个作业都生成一个独立的文件。
当发出一个作业,在命令行通过声明每个作业被调度的时间来启动at命令。
之后,你键入在那个时候执行的命令,使用CTRL+D组合键来结束命令输入过程。
at -t 12011200 #在12月01日12点00分执行一个作业
at 1200 Dec 01 #同上
at 12:00am tomorrow #明天12点执行一个作业
at now + 1 day #1天后这个时间执行一个作业
at now +10 minutes #从现在算起10分钟后执行一个作业
at -f myfile now + 1 hour #从现在算起1个小时后执行myfile文件中的命令
两个at选项:
at -l #列出当前的作业
at -r XXXXX #删除一个作业,XXXX为at -l命令列出的作业ID
命令使用参考:http://moko39848381.blog.163.com/blog/static/13982733120102793848827/