目录
什么是计划任务
crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
Linux中计划任务的种类:at 、cron
在Linux中实现计划任务的方式有两种,一种是at;另一种是cron;两者的区别是at只执行一次计划任务,执行完成之后结束;而cron是循环多次执行某个计划任务
仅执行一次的计划任务:at
at:只执行一次,执行完即结束
at使用格式:at + 时间
注:at是依赖于系统中的atd服务,所以首先检查atd服务是否运行,否则不能做计划任务;查看atd服务运行状态: service atd status
创建计划任务:at 12212012
注:使用Ctrl + D 提交计划任务
创建常用的计划任务:
创建十分钟之后的定时任务:at now + 10minutes
创建明天上午一点的定时任务:at 1am tomorrow
创建三天后下午四点的定时任务:at 4pm + 3 days
创建下午茶时间的定时任务:at teatime
更多的时间格式参考manpage
注:+表示多久时间之后,- 表示多久时间之前;am表示上午,pm表示下午
查看创建的计划任务:atq 或者 at -l
查看某个计划任务的内容:at -c 1
注:查看某个计划任务的时候-c参数后面世界加上序号即可
删除计划任务:atrm 1 或者 at -d 1
限制用户创建计划任务:vim /etc/at.deny
注:凡是出现在/etc/at.deny文件中的用户,都不能做计划任务
凡是出现在/etc/at.allow文件中的用户,都能够做计划任务(这个文件默认不存在)
循环执行的计划任务:cron
cron:周期性地执行计划任务
创建计划任务:crontab -e
注:cron计划任务中对应的列分别为分、时、天、月、周、计划任务;
分、时、天、月之间是和的关系,即四个时间段要全部符合计划任务才会执行
分、时、月、周是和的关系,即四个时间段要全部符合计划任务才会执行
天 和 周 是或的关系,即两个时间段里哪一个符合就执行哪一个,如果两个都符合就两个都执行
查看计划任务:crontab -l
查看指定用户的计划任务:crontab -l -u root
查看系统自带的计划任务:vi /etc/crontab
删除计划任务:crontab -r
限制用户创建计划任务:vim /etc/cron.deny
注:凡是出现在/etc/cron.deny文件中的用户,都不能做计划任务
凡是出现在/etc/cron.allow文件中的用户,都能够做计划任务(这个文件默认不存在)
可唤醒停机期间的工作任务
什么是anacron
在关机的情况下,本该执行的任务却没有执行;在系统再一次开机的时候,会检查系统的当前时间和上一次运行anacron的时间;然后判断crontab多久没有运行了;之后将这段时间没有运行的计划任务重新执行一遍
查看系统上一次计划任务执行时间:more /var/spool/anacron/cron.daily
anacron会根据配置文件中的信息将未执行的计划任务执行:vim /etc/anacrontab
原创文章,转载请注明出处