1.简介
Crontab是一个在Linux和Unix系统中用于定时执行任务的工具。它可以让用户在指定时间执行指定命令或脚本,例如备份文件、清理日志、定期发送邮件等。Crontab的作用和功能如下:
2.命令格式
crontab的命令格式:
crontab [-u 用户名] [-l|-e|-r] [-i] [文件名]
其参数含义如下:
参数说明
-u
指定要操作的用户的用户名,如果不指定,则默认为当前用户。
-l
列出当前用户的所有定时任务。
-e
编辑当前用户的定时任务。
-r
删除当前用户的所有定时任务。
-i
在删除定时任务时进行确认提示。
文件名
指定要安装的定时任务文件,可以是一个普通文本文件,也可以是一个压缩文件。
3.文件格式及含义
crontab文件是一个文本文件,用于存储定时任务的配置信息。该文件每行包含一个定时任务的配置,每个定时任务由五个或六个字段组成,字段之间用空格或制表符分隔。
下面是一个crontab文件的例子:
# 每天凌晨1点执行备份脚本
0 1 * * * /usr/local/bin/backup.sh
# 每周一、三、五的上午10点执行清理任务
0 10 * * 1,3,5 /usr/local/bin/cleanup.sh
# 每月1号凌晨2点执行统计任务
0 2 1 * * /usr/local/bin/stats.sh
每行的含义如下:
需要注意的是,crontab文件中可以使用#号注释掉一行或多行配置,以方便用户做出说明或者调试。
4.常用方法4.1创建一个新的crontab文件
要创建一个新的crontab文件,可以按照以下步骤进行:
1)使用crontab -l命令查看当前用户的crontab文件内容,以了解已有的定时任务配置。
2)使用crontab -e命令编辑当前用户的crontab文件,添加或修改定时任务配置。按照前面提到的格式要求,每行添加一个定时任务的配置信息。编辑完成后保存并退出。
3)使用crontab -l命令再次查看当前用户的crontab文件内容,确认新的定时任务配置已生效。
例如,要添加一个每天凌晨3点执行备份脚本的定时任务,可以按照以下步骤进行:
1)执行crontab -l命令,查看当前用户的crontab文件内容。
2)执行crontab -e命令,编辑当前用户的crontab文件。在文件末尾添加以下配置信息:
0 3 * * * /usr/local/bin/backup.sh
这表示在每天凌晨3点执行/usr/local/bin/backup.sh脚本。
3)保存并退出编辑器。
4)执行crontab -l命令,查看当前用户的crontab文件内容。应该可以看到新添加的定时任务信息。
4.2编辑crontab文件
要编辑当前用户的crontab文件,可以使用下面命令:
crontab -e
该命令会打开当前用户的crontab文件进行编辑,可以添加、修改或删除其中的定时任务配置。
4.3删除crontab文件
要删除当前用户的crontab文件,可以使用下面命令:
crontab -r
该命令会删除当前用户的crontab文件,其中包含了所有的定时任务配置信息。
5.使用实例实例1:每1分钟执行一次任务
需要每分钟执行一次/usr/local/bin/mytask.sh脚本:
* * * * * /usr/local/bin/mytask.sh
实例2:每小时的第3和第15分钟执行脚本
要在每小时的第3和第15分钟执行/usr/local/bin/mytask.sh脚本:
3,15 * * * * /usr/local/bin/mytask.sh
3,15表示第3和第15分钟都匹配。
实例3:在上午8点到11点的第3和第15分钟执行脚本
3,15 8-11 * * * /usr/local/bin/mytask.sh
实例4:每隔两天的上午8点到11点的第3和第15分钟执行脚本
3,15 8-11 */2 * * /usr/local/bin/mytask.sh
实例5:每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 /usr/local/bin/mytask.sh
其中,3,15表示第3和第15分钟都匹配,8-11表示上午8点到11点都匹配,1表示星期一匹配。
实例6:每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
其中,30表示第30分钟匹配,21表示晚上9点匹配,etc/init.d/smb restart是要执行的命令,这里是重启smb服务。
实例7:每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
实例8:每周六、周日的1 : 10重启smb
10 1 * * 6,7 /etc/init.d/smb restart
实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb
*/30 18-23 * * * /etc/init.d/smb restart
实例10:每星期六的晚上11 : 00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart
实例11:每一小时重启smb
0 */1 * * * /etc/init.d/smb restart
0表示第0分钟匹配,*/1表示每隔1个小时匹配一次。
实例12:晚上11点到早上7点之间,每隔一小时重启smb
0 23-7/1 * * * /etc/init.d/smb restart
0表示第0分钟匹配,23-7/1表示晚上11点到早上7点之间匹配。
6.注意事项
在使用crontab时,需要注意以下几个方面:
1)crontab命令只能被具有超级用户权限或者已经被授权可使用该命令的用户使用。
2)定时任务的时间配置需要按照规定的格式进行,每个字段的取值范围也需要正确设置。
3)定时任务的命令或脚本需要确保可执行,并且需要使用绝对路径指定。
4)在定时任务的执行过程中,需要确保所需的环境变量和工作目录已经正确设置。
5)定时任务执行时可能会产生一些输出信息,这些信息将会被发送到用户的邮件中。如果不希望收到这些信息,可以在定时任务的命令或脚本后面使用重定向符号将输出信息重定向到/dev/null。
6)定时任务的执行时间可能会受到系统时间、时区等因素的影响,需要根据实际需要进行调整。
7)定时任务的执行时间间隔越短,系统负载越高。因此,在确定定时任务的执行时间间隔时需要考虑系统的性能瓶颈和资源限制。
8)定时任务的执行结果需要定期进行监控和分析,以确保任务能够按照预期执行,并及时发现和解决可能出现的问题。
总之,在使用crontab时需要谨慎、细心,根据实际需要进行灵活的配置和调整。
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: lzxmw777