Welcome 微信登录

首页 / 操作系统 / Linux / Linux中的计划任务

Linux的计划任务分为两类:1,一次性执行:       常用命令:at, batch,依赖于atd服务2,周期性执行:       常用命令:crontab,依赖于crond服务一次性任务执行:用法:#at TIMEat> /bin/sync         输入需要执行的命令或脚本at> “Ctrl+d”          输入Cry+d提交任务
TIME:的几种格式                  #at now+3min                                                相对时间                  #at 11:30                                               或是绝对时间                  #at noon, midnight, teatime(4:00pm)      或是模糊时间                                                                                          man at查看其他详细时间表示方法 at命令选项:-m:当at工作完成后,即使没有输出信息,也会以mail通知用户工作已完成-l:列出当前正在等待执行的任务队列    #at -l= #atq   -d:删除尚未执行的任务    #at -dJOB_ID = atrm JOB_ID -f:指定执行对应目录下的脚本    #at-f /PATH/TO/AT_SCRIPT TIME     指定执行对应目录下的脚本       此处/PATH/TO/AT_SCRIPT称为at脚本例:at的使用实例通常在改远程主机ip之前,为避免修改后的新IP不通,导致无法连接,此场景中则可以先执行一个at任务#at now 10minat>ifconfig eth0 IP                  ##此IP为目前在使用的正确的IP先发送此at任务,再去改IP,即使改错,10分钟后也会自动恢复。与at的不同是,batch可以不需要指定时间,自动选择系统空闲时执行。在计划执行某些批处理任务的场合时,可能使用到,使其自己评估选择系统空闲时执行。周期性任务:周期性任务有两类:系统类周期性任务:/etc/crontab用户类周期性任务:/var/spool/cron/USERNAME系统cron的定义:方法:1、#vim /etc/crontab           此配置文件中添加计划任务2、#service crond restart        重启crond服务,使刚添加的计划任务生效系统cron的配置文件/etc/crontab中7个字段的含义:#cat/etc/crontab# Example of job definition:# .---------------- minute (0 - 59)           #第一个字段,在第几分钟执行# |  .------------- hour (0 -23)                #第二个字段# |  |  .---------- day of month (1 - 31)      # |  |  | .------- month (1 - 12) OR jan,feb,mar,apr ...# |  |  | |  .---- day of week (0 - 6)(Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat# |  |  | |  |   # * *  *  *  * user-name(第六个字段) command to be executed(第七字段)用户cron的定义:方法:#crontab -e [-u USERNAME]
此命令自动打开编辑器,即可新建任务、修改原有任务、删除原有任务,然后保存即可。此命令编辑文件提供语法检查功能,而通过vim并不会。类似visudo。保存后的cron文件自动保存在 /var/spool/cron/USERNAME文件中,此文件中定义6个字段,意义同配置文件/etc/crontab中相同,只是去掉user-name段,即与系统cron相比,用户cron无需指定用户身份crontab命令的选项:-e:打开当前系统的默认文本编辑器,来定义用户cron-r: 移除配置文件,会删除所有任务;    (若删除某指定任务,crontab -e打开文件删除对应行即可)-l: 列出周期性任务-u USERNAME:管理员以其他用户身份定义crontab,并且会保存对应用户名的目录下 E.g. #crontab-e -u user1  (所以即可实现root用户管理其他用户的任务)cron配置文件中时间点的段,指定时间时可使用如下通配符:* :相应时间点的所有有效取值,即意为每    E.g. 3 4 * * * root cat /etc/fstab    每天4点3分以root用户执行命令cat/etc/fstab       3 4 * * 5 root cat /etc/fstab    每周五4点3分执行(周和月,通常不同时使用), :离散取值     E.g. 3,18,33,48 * * * * root cat /etc/fstab        表示每小时的第3分钟,18分钟….,即每5分钟执行1次/ :定义指定取值范围内的频率    E.g. */3 * * * * root cat/etc/fstab   每3分钟执行一次   17 */3 * * * root cat /etc/fstab    每3小时的第17分钟执行一次,即实现每3小时执行一次-  :连续取值:    E.g. 17 8-20/3 * * * root cat /etc/fstab  每天8点到20点每3小时执行一次例:3 18 * * 2,5                    每周执行2次(周二和周五)       2,328-18/3 * * 1-5       周一到周五,8点到18点每隔3小时,每半小时执行一次       72 */2 * * root tar -Jcf /backup/etc-`date "+%F"`.tar.xz /etc/*    每2天的凌晨2点7分执行备份一次/etc目录 Linux中利用crontab创建计划任务 http://www.linuxidc.com//Linux/2013-06/86401.htmLinux中用crontab例行工作安排 http://www.linuxidc.com//Linux/2013-06/85441.htmLinux crontab不执行问题排查 http://www.linuxidc.com//Linux/2013-06/85432.htmUbuntu使用crontab定时任务 http://www.linuxidc.com//Linux/2013-05/84770.htmLinux计划任务(at batch crontab anacron) http://www.linuxidc.com//Linux/2013-03/81584.htm 本文永久更新链接地址