Linux中执行定时任务,一般是经过crond
这个守护进程来完成的,用ps -ef | grep crond | grep -v grep
能够看到。它会从三个地方读取配置文件来进行后台任务的执行:html
${USER}
这些配置文件记录了命令行以及执行周期等信息。下面来分别看看这三种类型的配置文件:vim
该目录下新建一个文本文件,并以当前用户名命名,好比当前是root帐户登陆,则vim root
,配置格式是这样:* * * * * 命令
bash
第一个 * 表明每小时中的第几分钟(0-59)
第二个 * 表明天天的第几个小时(0-23)
第三个 * 表明每月中的第几天(1-31)
第四个 * 表明每一年的第几个月(1-12)
第五个 * 表明每周的星期几(0-7,0和7都表明星期日)编辑器
特殊符号,
表明不连续的时间。好比0 8,12,16 * * *
,就表明在天天的8点0分,12点0分,16点0分各执行一次。-
表明连续的时间范围。好比0 5 * * 1-6
,表明在周一到周六的凌晨5点0分执行命令*/n
表明每隔多久执行一次。好比*/10 * * * *
,表明每隔10分钟就执行一遍命令url
例:命令行
45 22 * * * 命令
在22点45分执行命令0 17 * * 1 命令
每周1 的17点0分执行命令0 5 1,15 * * 命令
每个月1号和15号的凌晨5点0分执行命令40 4 * * 1-5 命令
每周一到周五的凌晨4点40分执行命令*/10 4 * * * 命令
天天的凌晨4点,每隔10分钟执行一次命令0 0 1,15 * 1 命令
每个月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,由于他们定义的都是天。很是容易让管理员混乱。案例*/1 * * * * echo 'hello' >> /tmp/a.txt
每隔一分钟向/tmp/a.txt中追加一行hello,可使用tail -f /tmp/a.txt
观察code
PS:使用crontab -e
效果等同于vim /var/spool/cron/${USER}
这个文件负责安排由系统管理员制定的维护系统以及其余任务的crontab。htm
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # For details see man 4 crontabs # 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 # run-parts 00 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 44 4 1 * * root run-parts /etc/cron.monthly
MAILTO=root
是说,当 /etc/crontab 这个档案中的例行性命令发生错误时,会将错误讯息或者是屏幕显示的讯息传给谁。blog
00 * * * * root run-parts /etc/cron.hourly
:在 #run-parts 以后的命令,能够看到,五个占位符后面接的是root,表明以root身份执行。而run-parts表明后面接的/etc/cron.hourly
是该目录内(/etc/cron.hourly)的全部可执行文件,也就是说,每一个小时的00分,系统会以root身份去/etc/cron.hourly这个目录下执行全部可执行的文件,后面三行也是相似的意思。能够将天天须要执行的命令直接写到/etc/cron.daily便可,这样能够不使用crontab -e。进程
该目录用来存听任何要执行的crontab文件或脚本。
查看/etc目录下有没有cron.allow或cron.deny文件,做用以下:
crontab命令用于安装、删除或者列出用于驱动cron后台进程的表格。用户把须要执行的命令序列放到crontab文件中以得到执行。