linux,创建计划任务
LINUX下计划任务的配置计划任务的概述 系统中有两个守护进程cron和anacron用于自动执行周期性任务,cron与anacron是完全不同的两个用于定期执行任务的守护进程。 A.cron假定服务器是24*7全天候运行的,当系统时间变化或有一段关机时间就会遗漏这一时间段应该执行的cron任务。 B.anacron是cron的一个连续时间版本,它不会因为时间不连续而导致的任务不执行。 C.anacron是针对非全天候运行而设计的,当anacron发现时间不连续时,也会执行这一时间段内该执行的任务,这样就不会遗漏计划任务的执行。 D.每个用户都可以安排自己的cron任务。超级用户可以管理系统的cron任务和anacron任务。 设置用户自己的计划任务 cron守护进程会去搜索/var/spool/cron目录下的文件和/etc/crontab文件,/etc/crontab这个文件是系统安装时设置好的自动安排的进程任务的crontab文件。 cron简介 cron守护进程启动以后,它将首先检查是否有用户设置了crontab文件,cron守护进程首先会搜索/var/spool/cron目录,寻找以/etc/passwd文件中的用户名命名的crontab文件,被找到的这种文件将载入内存。例如一个用户名为benet的用户,它所对应的 crontab文件就应该是/var/spool/cron/benet,也就是说,以该用户命名的crontab文件存放在/var/spool/cron目录下面。如果cron守护进程没有发现相应的crontab文件就转入“休眠”状态,释放系统资源,所以该后台进程占用资源极少。cron守护进程每分钟唤醒一次,当crontab中的时间和日期与系统的当前时间和日期相同时,就执行相应的cron任务,cron任务执行结束后,任何输出都将作为邮件发送给安排cron任务的所有者,或者是crontab中MAILTO环境变量中指定的用户。 cron守护进程的执行不需要用户干涉;只需要用户安排crontab文件,在该文件中要执行的时间和命令序列,下面介绍crontab命令。crontab命令 每个用户都可以设置自己的crontab文件以便执行用户自己需要的自动运行的任务。用户自己的crontab文件位于 /var/spool/cron/目录,但用户不能直接编辑这些文件,用户必须使用crontab命令编辑它。 crontab命令用于安装、删除或者列出用于驱动cron后台进程的crontab任务,crontab的命令格式如下: 格式1:crontab[-uuser]file 格式2:crontab[-uuser][-l|-r|-e] 下表是crontab命令的选项说明 crontab文件中的每一行格式为: minutehourday-of-monthmonth-of-yearday-of-week [username]commands 每行中都由用空格间隔的七个字段组成。下表说明了各个字段的含义和取值范围。 下面重点说明一下前五个时间字段的语法: A.不能为空,可以使用统配符*表示任何时间。 B.可以指定多个值,它们之间用逗号间隔。例如:1,3,7。 C.可以指定时间段,用减号间隔。例如:0-6。 D.可以用/n表示步长。例如:8-18/2表示时间序列 8,10,12,14,16,18。 E.可以在crontab文件中定义并使用环境变量。 F.如果要执行多条命令可以将其写入一个脚本中,在commands字段中只需写脚本文件名即可。 自动安排进程任务举例 执行如下命令安排root用户的crontab任务: #crontab–e #每月1日和15日凌晨1:30使系统进入维护状态,重新启动系统 3011,15**shutdown–r+10>/dev/null2>&1 #每天凌晨的2点删除/ftp/incoming/temp目录下的所有文件0002***rm-rf/ftp/incoming/temp/* #每天凌晨的1点删除/tmp目录下7天没有被修改过的所有子目录 #不包括/tmp当前目录和lost+found目录 0001***find/tmp!–name.!–namelost+found\–typed–mtime+7–exec/bin/rm–rf{}‘;’ #每天早上8点将/var/log/secure文件内容发送给osmond@ 08***mailosmond@>/shzq/ygt/log/2>&1说明 #crontab–l#查询任务