什么是任务计划?就是计划在一个时间上自动执行命令。Windows下的任务计划在开始菜单-附件-系统工具下。比如我们新建一个任务计划:每天下午6点自动清理磁盘缓存等垃圾文件。这就是为一个循环的任务而设计的,方便我们的管理。
Snap1
使用at命令在指定的时间自动处理工作。
a t命令的格式为:
at -m -q queuename time date
at -r job
at –l
参数解释:
-m                 当任务完成以后给予用户mail通知。
-r job               从队列中移出计划工作。
-q queuename     指定要操作的队列
Time               指定命令的处理时间
-l                  报告用户的所有计划作业
Date                为指定的命令处理指定一个日期。这个日期是月名,天数或者周中的某一天。
例如下面的例子:创建一个作业在下午9点运行。
#at 9:00 pm
at>find /export/home -name core -exec file {} \; >> /var/tmp/corelog
at&gt; <EOT>
commands will be executed using /sbin/sh
job 1098648000.a at Mon Oct 25 21:00:00 2004
显示关于作业处理的信息
#at -l 1098648000.a
1098648000.a    Mon Oct 25 21:00:00 2004
按date排序显示指定作业序列的情况。
# atq
Rank     Execution Date     Owner     Job         Queue   Job Name
1st   Oct 25, 2004 21:00   root       1098648000.a     a     stdin
显示当前作业的情况
# ls -l /var/spool/cron/atjobs
total 4
-r-Sr--r--   1 root     root        1044 Oct 25 13:48 1098648000.a
我们也可以使用at命令移出作业
例如:
#at -r 1098648000.a
#atq
Rank     Execution Date     Owner     Job         Queue   Job Name
控制at命令的访问
做为root用户我们可以控制at命令的访问通过at.deny和at.allow文件。
/etc/cron.d/at.deny文件
默认的Solaris OS有/etc/cron.d/at.deny文件。这个文件标示禁止使用at命令的用户。这个文件的每行都是一个用户名。这个文件初始为:
Snap2
当一个被禁止访问at命令的用户在尝试使用的时候会接受到以下的消息:
at: you are not authorized to use at. Sorry.
如果/etc/cron.d/at.deny文件为空则所有的用户都可以访问at命令。
/etc/cron.d/at.allow文件
默认情况下/etc/cron.d/at.allow文件并不存在(除了那些在/etc/cron.d/at.deny文件列出的用户)都可以创建at作业。创建文件我们列出那些可以使用at作业的用户。
/etc/cron.d/at.allow文件的每行都是由用户名组成的。
在at.allow文件和at.deny文件之间有以下的规则:
如果at.allow文件存在,只有在文件中列出的用户才可以执行at命令
如果at.allow文件不存在,除了at.deny文件中的用户外其他用户都可以执行at命令。
如果两个文件都存在,则只有root可以执行at命令
如果用户在2个文件中,则用户是拒绝使用at命令的。
     
自动重复执行作业计划
我们可以使用cron来灵活规律的重复执行命令。用户能够通过提交cron来灵活的修改crontab文件。所有的crontab文件都保存在/var/spool/cron/crontabs目录下并且是以创建cron作业的用户的登陆名来存储的。Cron进程负责这些作业的安排和运行。Clock进程,cron在系统启动的时候在后台持续运行。
介绍一下crontab文件的格式:文件每行是由6部分组成。每部分由空格或者tab分开。前面5部分是命×××运行的时间和日期。最后一部分是命令的完整路径。
例如:
10 3 * * 0 /usr/sbin/log/adm
第一部分:分钟的值在0~59之间。
第二部分:小时的值在0~23之间
第三部分:每月的天数的值在1~31之间
第四部分:月数的值在1~12之间
第五部分:周中天数0~6之间
最后一部分是全路径的命令
数值      规则            举例
N        段匹配的值为n    比如前面的小时和分钟为一个为3和10
n,p,q      如果匹配的值为n  通过0,10,20,30,40,50来代表每10分钟
n-p       匹配的值在n和p之间 可以通过1-4来表示早上1点到4点
*         匹配所有合法的值  如果在月段上为星则代表所有的月
使用crontab命令:crontab命令可以使得用户可以查看,编辑和删除crontab文件。
查看crontab文件:运行crontab –l命令查看root用户的crontab文件。
Snap4
同样的命令也可以查看其他用户的crontab文件。
作为root用户我们也能查看其他用户的crontab文件的内容:#crontab –l username
Snap5
编辑crontab文件。
注意:如果我们偶然输入crontab命令而没有带(-l,-e,-r)参数,输入Control-C 退出,不要输入Control-D 命令退出这样会把原来存在的crontab文件变成空文件。
创建和编辑crontab文件执行下面的步骤:
检查EDITOR变量的设置情况。
# EDITOR=vi
# export EDITOR
运行crontab命令来打开crontab文件。
# crontab -e
30 17 * * 5 /usr/bin/banner "Time to go!" &gt; /dev/console
:wq
移出crontab文件
正确的移出crontab文件的命令
# crontab –r  username
典型的用户能够移出属于自己的crontab文件。Root用户可以移出任何一个用户的crontab文件。
控制访问crontab文件
我们可以控制访问crontab命令在/etc/cron.d目录下的2个文件上--- cron.deny文件和 cron.allow文件。
这些文件只允许指定的用户来执行crontab任务,比如:创建,编辑,显示或者删除自己的crontab文件。
/etc/cron.d/cron.deny文件:默认的Solaris OS有cron.deny文件。这个文件标示禁止使用cron命令的用户。这个文件的每行都是一个用户名。这个文件初始为:
Snap3
默认情况下/etc/cron.d/cron.allow文件并不存在(除了那些在/etc/cron.d/cron.deny文件列出的用户)都可以创建cron作业。创建文件我们列出那些可以使用cron作业的用户。
这个文件的每行都是有用户名组成的。
在cron.allow文件和cron.deny文件之间有以下的规则:
如果cron.allow文件存在,只有在文件中列出的用户才可以编辑crontab文件。
如果cron.allow文件不存在,除了cron.deny文件中的用户外其他用户都可以编辑crontab文件。
如果两个文件都存在,则只有root可以执行crontab命令
如果用户在2个文件中,则用户是拒绝使用cron命令的。