crontab实例+详解 (附:freebsd每天6点重启)
crontab用法

在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup
周一到周五每天下午 5:00 寄一封信给 alex@ :
0 17 * * 1-5 mail -s "hi" alex@ < /tmp/maildata
#
# 设定每 5 分钟执行一次atrun。
*/5 * * * * root /usr/libexec/atrun
# 设定每天一点零一分时执行 /bin/check
1 1 * * * root /bin/check
# 设定每周一 3:11 分执行 week_check
11 3 * * 1 root /usr/local/week_check
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推
使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。
例子1 :
#每天早上7点执行一次 /bin/ls :
MAILTO=""
#
# 分 小时 天 月 星期几 身份 指令
#minute hour mday month wday who command
#
*/5 * * * * root /usr/libexec/atrun
minute:代表一小时内的第几分,范围 0-59。
hour:代表一天中的第几小时,范围 0-23。
linux 定时器crontab

当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执
行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
基本格式 :
* * * * * command
分 时 日 月 周 命令
crontab定时运行命令解析

linux 定时运行程序转crontab,无论root还是user都可以用。
基本用法:1. crontab -l列出当前的crontab任务2. crontab -d删除当前的crontab任务3. crontab -e (solaris5.8上面是 crontab -r)编辑一个crontab任务,ctrl_D结束4. crontab filename以filename做为crontab的任务列表文件并载入crontab file的格式:crontab 文件中的行由 6 个字段组成,不同字段间用空格或 tab 键分隔。
前 5 个字段指定命令要运行的时间分钟 (0-59)小时 (0-23)日期 (1-31)月份 (1-12)星期几(0-6,其中 0 代表星期日)第 6 个字段是一个要在适当时间执行的字符串例子:#MIN HOUR DAY MONTH DAYOFWEEK COMMAND#每天早上6点10分10 6 * * * date#每两个小时0 */2 * * * date (solaris 5.8似乎不支持此种写法)#晚上11点到早上8点之间每两个小时,早上8点0 23-7/2,8 * * * date#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点0 11 4 * mon-wed date#1月份日早上4点0 4 1 jan * date[例7]# crontab -l #列出用户目前的crontab。
10 6 * * * date0 */2 * * * date0 23-7/2,8 * * * date#在crontab文件中如何输入需要执行的命令和时间。
该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。
每个域之间使用空格或者制表符分隔。
格式如下:minute hour day-of-month month-of-year day-of-week commands第一项是分钟,第二项是小时,第三项是一个月的第几天,第四项是一年的第几个月,第五项是一周的星期几,第六项是要执行的命令。
crontab命令详解含启动重启停止

crontab命令详解含启动重启停⽌linux 系统则是由 cron (crond) 这个系统服务来控制的。
Linux 系统上⾯原本就有⾮常多的计划性⼯作,因此这个系统服务是默认启动的。
另外, 由于使⽤者⾃⼰也可以设置计划任务,所以, Linux 系统也提供了使⽤者控制计划任务的命令 :crontab 命令。
⼀、crond简介crond 是linux下⽤来周期性的执⾏某种任务或等待处理某些事件的⼀个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务⼯具,并且会⾃动启动crond进程,crond进程每分钟会定期检查是否有要执⾏的任务,如果有要执⾏的任务,则⾃动执⾏该任务。
Linux下的任务调度分为两类,系统任务调度和⽤户任务调度。
系统任务调度:系统周期性所要执⾏的⼯作,⽐如写缓存数据到硬盘、⽇志清理等。
在/etc⽬录下有⼀个crontab⽂件,这个就是系统任务调度的配置⽂件。
/etc/crontab⽂件包括下⾯⼏⾏:[root@localhost ~]# cat /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=””HOME=/# run-parts51 * * * * root run-parts /etc/cron.hourly24 7 * * * root run-parts /etc/cron.daily22 4 * * 0 root run-parts /etc/cron.weekly42 4 1 * * root run-parts /etc/cron.monthly[root@localhost ~]#前四⾏是⽤来配置crond任务运⾏的环境变量,第⼀⾏SHELL变量指定了系统要使⽤哪个shell,这⾥是bash,第⼆⾏PATH变量指定了系统执⾏命令的路径,第三⾏MAILTO变量指定了crond的任务执⾏信息将通过电⼦邮件发送给root⽤户,如果MAILTO变量的值为空,则表⽰不发送任务执⾏信息给⽤户,第四⾏的HOME变量指定了在执⾏命令或者脚本时使⽤的主⽬录。
crontab 实例

crontab 实例什么是crontab?如何使用crontab?为什么使用crontab?有哪些常见的crontab用法?如何管理crontab任务?crontab的一些注意事项?回答什么是crontab?Crontab是一个在UNIX和类UNIX操作系统上的时间基准工具。
它允许用户在特定的时间间隔内运行预定的命令或脚本。
Crontab的名称来源于其使用的命令行工具`crontab`,它用于安装、编辑和管理用户个人的cron job列表。
如何使用crontab?要使用crontab,首先需要了解它的格式。
一个典型的crontab包含了五个字段,分别表示分钟、小时、日期、月份和星期。
这些字段中的每一个都可以用一个具体的数值或一个通配符来表示。
通配符包括星号(*),表示所有值,以及逗号(,)和斜杠(/),用于指定具体的数值范围或间隔。
例如,下面是一个简单的crontab示例,每周五下午3点运行一个shell 脚本:0 15 * * 5 /home/user/script.sh在这个示例中,0表示分钟字段,15表示小时字段,*表示日期字段(即每天),5表示月份字段(即每周五),`/home/user/script.sh`是要运行的脚本。
要安装一个crontab任务,可以使用`crontab`命令加上一个选项,例如:crontab -e这个命令将打开一个文本编辑器,允许您编辑您的crontab列表。
每一行都表示一个cron job。
通过添加每个cron job的配置,您可以在crontab中定期运行任务。
为什么使用crontab?Crontab非常适合需要自动化执行的任务。
它可以帮助您定期备份文件、运行系统维护任务、生成报告等等。
您无需手动运行这些任务,只需设置正确的时间和命令,crontab将会在给定的时间自动运行您指定的脚本或命令。
使用crontab还可以提高工作效率。
通过将一些重复性的任务交给crontab处理,您可以专注于完成其他更重要的事情,而不用担心错过任务的执行时机。
Crontab详细用法-定时任务详解

Crontab详细⽤法-定时任务详解Cron表达式是⼀个字符串,字符串以5或6个空格隔开,分为6或7个域,每⼀个域代表⼀个含义,Cron有如下两种语法格式:Seconds Minutes Hours DayofMonth Month DayofWeek Year或Seconds Minutes Hours DayofMonth Month DayofWeek每⼀个域可出现的字符如下:Seconds:可出现", - * /"四个字符,有效范围为0-59的整数Minutes:可出现", - * /"四个字符,有效范围为0-59的整数Hours:可出现", - * /"四个字符,有效范围为0-23的整数DayofMonth:可出现", - * / ? L W C"⼋个字符,有效范围为0-31的整数Month:可出现", - * /"四个字符,有效范围为1-12的整数或JAN-DEcDayofWeek:可出现", - * / ? L C #"四个字符,有效范围为1-7的整数或SUN-SAT两个范围。
1表⽰星期天,2表⽰星期⼀,依次类推Year:可出现", - * /"四个字符,有效范围为1970-2099年每⼀个域都使⽤数字,但还可以出现如下特殊字符,它们的含义是:(1)*:表⽰匹配该域的任意值,假如在Minutes域使⽤*, 即表⽰每分钟都会触发事件。
(2)?:只能⽤在DayofMonth和DayofWeek两个域。
它也匹配域的任意值,但实际不会。
因为DayofMonth和 DayofWeek会相互影响。
例如想在每⽉的20⽇触发调度,不管20⽇到底是星期⼏,则只能使⽤如下写法: 13 13 15 20 * ?, 其中最后⼀位只能⽤?,⽽不能使⽤*,如果使⽤*表⽰不管星期⼏都会触发,实际上并不是这样。
关于定时执行任务:Crontab的20个例子

关于定时执⾏任务:Crontab的20个例⼦Crontab在Linux上的结构从左到右依次为:[分钟] [⼩时] [每⽉的某⼀天] [每年的某⼀⽉] [每周的某⼀天] [执⾏的命令]注意:请留意每个选项的取值范围。
添加或更新crontab中的命令crontab -e查看当前系统登录⽤户的Crontab命令集合crontab -l20个超实⽤的Crontab使⽤实例每天 02:00 执⾏任务0 2 * * * /bin/sh backup.sh每天 5:00和17:00执⾏任务0 5,17 * * * /scripts/script.sh每分钟执⾏⼀次任务通常情况下,我们并没有每分钟都需要执⾏的脚本(默默的想到了12306--)* * * * * /scripts/script.sh每周⽇ 17:00 执⾏任务0 17 * * sun /scripts/script.sh每 10min 执⾏⼀次任务*/10 * * * * /scripts/monitor.sh在特定的某⼏个⽉执⾏任务* * * jan,may,aug * /script/script.sh在特定的某⼏天执⾏任务0 17 * * sun,fri /script/scripy.sh在每周五、周⽇的17点执⾏任务在某个⽉的第⼀个周⽇执⾏任务0 2 * * sun [ $(date +%d) -le 07 ] && /script/script.sh每四个⼩时执⾏⼀个任务0 */4 * * * /scripts/script.sh每周⼀、周⽇执⾏任务0 4,17 * * sun,mon /scripts/script.sh每个30秒执⾏⼀次任务我们没有办法直接通过上诉类似的例⼦去执⾏,因为最⼩的是1min。
但是我们可以通过如下的⽅法。
* * * * * /scripts/script.sh* * * * * sleep 30; /scripts/script.sh多个任务在⼀条命令中配置* * * * * /scripts/script.sh; /scripts/scrit2.sh每年执⾏⼀次任务@yearly /scripts/script.sh@yearly 类似于“0 0 1 1 *”。
crontab 实例

crontab 实例
摘要:
1.crontab 简介
2.crontab 实例
3.crontab 的使用注意事项
正文:
1.crontab 简介
crontab 是一个用于定时执行任务的Linux 命令。
该命令可以让用户在特定时间或者时间间隔内执行特定的任务,非常适合用于执行周期性的任务,例如定时备份文件、定时清理日志等。
2.crontab 实例
下面是一个crontab 的实例,该实例将会在每天早上7 点和晚上11 点执行相应的任务。
```
0 7 * * * /usr/bin/ls
0 23 * * * /usr/bin/ls
```
上述实例中,每行代表一个任务,分别表示在每天的早上7 点和晚上11 点执行/usr/bin/ls 命令,该命令用于列出当前目录下的所有文件和文件夹。
3.crontab 的使用注意事项
在使用crontab 时,需要注意以下几点:
- 时间字段不能有空格,否则会导致任务无法执行。
- 时间字段中的数字表示小时、分钟、秒,每个字段之间用空格隔开。
- 如果任务需要执行多个命令,需要用分号隔开。
- 如果任务需要定期执行,需要用星号(*) 表示时间间隔。
- 务必确保要执行的任务的文件路径和命令正确无误,否则会导致任务无法执行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
crontab实例+详解(附:freebsd每天6点重启)crontab实例+详解########################1######################################crontab语法:crontab [-u <用户名称>][配置文件] 或crontab [-u <用户名称>][-elr]补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。
只要用户会编辑计时器的配置文件,就可以使用计时器的功能。
其配置文件格式如下:Minute Hour Day Month DayOFWeek Command配置命令的取值范围:minute (0-59), hour (0-23), day of the month (1-31), month of the year (1-12), day of the week (0-6 with 0=Sunday).参数:-e 编辑该用户的计时器设置。
-l 列出该用户的计时器设置。
-r 删除该用户的计时器设置。
-u<用户名称> 指定要设定计时器的用户名称。
详细说明:时程表的格式如下:f1 f2 f3 f4 f5 program其中f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。
program 表示要执行的程序。
当f1 为* 时表示每分钟都要执行program,f2 为* 时表示每小时都要执行程序,其余类推当f1 为a-b 时表示从第a 分钟到第b 分钟这段时间内要执行,f2 为a-b 时表示从第a 到第 b 小时都要执行,其余类推当f1 为*/n 时表示每n 分钟个时间间隔执行一次,f2 为*/n 表示每n 小时个时间间隔执行一次当f1 为a, b, c,... 时表示第a, b, c,... 分钟要执行,f2 为a, b, c,... 时表示第a, b, c...个小时要执行使用者也可以将所有的设定先存放在档案file 中,用crontab file 的方式来设定时程表。
引用例子:每月每天7点的第0 分钟执行一次/bin/ls : 0 7 * * * /bin/ls在12 月内, 每天的早上6 点到12 点中,每隔20 分钟执行一次/usr/bin/backup : 0 6-12/20 * 12 * /usr/bin/backup周一到周五每天下午5:00 寄一封信给wen.yang@ :0 17 * * 1-5 mail -s "hi" wen.yang@ < /tmp/maildata每月每天的午夜0 点20 分, 2 点20 分, 4 点20 分....执行echo "haha"20 0-23/2 * * * echo "haha"附带:Freebsd取昨天日期方法:date -v -1d +%Y%m%dFreebsd取上个周今日方法:date -v -1w +%Y%m%dFreebsd取上个月今日方法:date -v -1m +%Y%m%dFreebsd取去年今日的方法:date -v -1y +%Y%m%d基本格式:*****command分时日月周命令第1列表示分钟1~59 每分钟用*或者*/1表示第2列表示小时1~23(0表示0点)第3列表示日期1~31第4列表示月份1~12第5列标识号星期0~6(0表示星期天)第6列要运行的命令crontab文件的一些例子:30 21 * * * /usr/local/etc/rc.d/lighttpd restart上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart上面的例子表示每星期六的11 : 00 pm重启apache。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart每一小时重启apache* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart晚上11点到早上7点之间,每隔一小时重启apache0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart每月的4号与每周一到周三的11点重启apache0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart一月一号的4点重启apache########################2############################################### #设置每一分钟执行一次我的程序:# crontab -e* */1 * * * /home/lfzhou/vhost/vhost/sbin/service crond stop //关闭服务/sbin/service crond start //启动服务或/sbin/service crond reload //重新载入配置cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。
由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:/sbin/service crond start //启动服务/sbin/service crond stop //关闭服务/sbin/service crond restart //重启服务/sbin/service crond reload //重新载入配置你也可以将这个服务在系统启动的时候自动启动:在/etc/rc.d/rc.local这个脚本的末尾加上:/sbin/service crond start现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:1、直接用crontab命令编辑cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数crontab -l //列出某个用户cron服务的详细内容crontab -r //删除某个用户的cron服务crontab -e //编辑某个用户的cron服务比如说root查看自己的cron设置:crontab -u root -l再例如,root想删除fred的cron设置:crontab -u fred -r在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。
时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:分钟(0-59)小時(0-23)日期(1-31)月份(1-12)星期(0-6)//0代表星期天除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。
以下举几个例子说明问题:每天早上6点0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
每两个小时0 */2 * * * echo "Have a break now." >> /tmp/test.txt晚上11点到早上8点之间每两个小时,早上八点0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点0 11 4 * 1-3 command line1月1日早上4点0 4 1 1 * command line每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。
cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。
因此此文件修改后不需要重新启动cron服务。
2、编辑/etc/crontab 文件配置croncron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。
用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。
此文件的文件格式是:SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号HOME=/ //使用者运行的路径,这里是根目录# run-parts01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。