15.计划任务

at:在指定时间执行指定的命令,执行完就从系统中取消该命令。 

cron:在指定时间周期性的执行指定的命令。

at

命令

at                              //设置任务 

atq                             //查看目前的任务 

atrm                            //删除设定的任务 

文件

/etc/at.allow                   //允许使用at的用户列表 

/etc/at.deny                    //禁止使用at的用户列表 

目录:/var/spool/at                   //存放at任务文件的目录

语法: 

#at  [-选项]                 时间格式 //设置任务 

#atq                                          //查看目前的任务 

#atrm [number]                                //删除设定的任务

选项
-m at的工作完成后,会发该 email用户。 

时间格式主要有以下几种

* HH:MM       在今天的HH:MM 执行,若该时刻已超过,则明天的 HH:MM 行此工作。

* HH:MM YYYY-MM-DD                 在某年某月的某一天某时刻执行该工作!

* HH:MM + number    [minutes|hours|days|weeks] 就是說,在某个时间加上定义的时间之后执行。

在输入at之后,就进入命令输入模式,这里你可以重复输入命令,退出的时候 trl+D,就可 以离开了。

#service  atd  start  //启动服务 

#service  atd  restart //重新启动服务 

#service  atd  stop //停止服务 

执行at这个命令会将工作的脚本存入 /var/spool/at这个目录,等待系统执行

先找/etc/at.allow里的用户,再找/etc/at.deny的用户

每个用户一行,使非root用户也可使用at

CRON

相关的文件: 

*  命令: 

*  /usr/bin/crontab                     //建立例行性的计划任务 

*  /usr/sbin/crond                      //例行性计划任务的守护进程

文件: 

*  /etc/cron.allow: 将可以使用 crontab 的用户名写入其中,不在该文件内存在的用户则不可使用 crontab; 

*  /etc/cron.deny:  将不可以使用 crontab 的用户名写入其中,未记录到该文件中的用户,就可以使用 crontab,一个用户一行   

*  /var/log/cron周期性命令的记录会放在这个文件中(日志文件) 
*  /etc/crontab  //系统执行周期性命令的配置文件 

目录: 

*  /etc/cron.daily 

*  /etc/cron.hourly 

*  /etc/cron.monthly 

*  /etc/cron.weekly  //以上都是存放系统周期性执行任务的目录

* /var/spool/cron       //存放用户周期性任务的目录,执行crontab的命令后,会将你的周期性任务写入/var/spool/cron这个目录中的用户同名文件中。例如test执行了他的crontab命令,那么就会自动产生/var/spool/cron/test这个文件(这个文件不能直接编辑)

语法: 

*  crontab   [–选项

 选项 
 -u:只有root能执行的选项,指定一个用户名 
 -l:列出crontab的内容 
-e:编辑crontab的内容 
 -r删除crontab的内容

#service   crond   start  //启动服务 

#service   crond  restart //重新启动服务 

#service  crond  stop //停止服务

例: 每天给boss发日报 

30 17 * * 1-5 mail boss < /home/test/report.txt 

每月 1日 1200 对系统日志进行备份 

0 12 1 * * tar czvf /back/system.tgz  /var/log/* 

* crontab是用户使用的,系统任务就不必运行crontab命令了可以直接编辑/etc/crontab

01 * * * * root run-parts /etc/cron.hourly

5个时间后面接的是root,代表的是执行的身份为root用户。 
run-parts代表后面接的/etc/cron.hourly是一个目录内的所有可执行文件,(你可以到/etc目录下看看,系统本来就预设几个目录)也可以将每天要执行的命令直接写到/etc/cron.daily就行,就不需要使用crontab e

建立一个/root/runcron的目录,将要每隔5分钟执行的可执行文件放到该目录下,再在/etc/crontab文件中加 */5 * * * * root run-parts /root/runcron 就可以让系统每5分钟执行一次该目录下的所有可执行文件。

也就是说cron会每分钟读取一次 
/etc/crontab/var/spool/cron里面的内容,因此,只要你编辑完/etc/crontab这个文件,并且将他保存后,那么,它就会自动的会来执行。