1、查看定时执行的文件:命令:“crontab -l”,如同ll或者ls一样,显示定时任务列表信息。
目前创新互联建站已为上1000家的企业提供了网站建设、域名、雅安服务器托管、网站托管、服务器托管、企业网站设计、唐山网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
2、查看定时任务详细信息,定时任务脚本前面的 * * * * *和数字意思解释如下:从左到右,依次是:分、时、日、月、星期。
3、修改定时脚本里面的执行内容。
4、查看定时脚本执行内容。
5、编辑定时执行计划。这个方式和修改文件类似。使用命令:"crontab -e" ,e表示edit修改的意思。
6、修改脚本路径,脚本的具体执行时间等。如果是每隔10分钟执行一次命令是:“*/10 * * * * /脚本.sh”。
crond是Linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,在CentOS Linux release 7.2.1511中默认是开机启动的,大家可以使用命令:systemctl status crond进行查看。 crond进程定期(每分钟)检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。用户在cron表
(也被称为crontab文件)指定了定时任务,crontab也就是我们常见的定时任务设置命令。Linux下的任务调度分为两类,系统任务调度和用户任务调度。
系统任务调度 :系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。/etc/crontab文件就是系统任务调度的配置文件。
用户任务调度 :用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab文件都被保存在/var/spool/cron目录中。其文件名与用户名一致,使用者权限文件如下:
通过以上帮助信息,我们可以知道crond是执行任务计划的一个守护进程。在使用crontab之前我们可以根据帮助信息来设置相关选项,一般情况下我们都使用默认值。
1.建立演示账号crontab。
2.星号(*)使用举例。
以上例子中完整演示了crontab从建立到执行的过程。“5 0 * * * echo "GeekDevOps"”表示在每天00:05执行命令:echo "GeekDevOps"。后面的星号表示只要前面条件满足都执行。例子中的-u选项指定了用户:crontab,-l选项列举了相关用户的用户任务调度,不指定用户则默认为root。执行结果默认写入到用户mail目录下的相关文件中。
3.逗号(,)的使用举例。
现在我们已经把用户切换到crontab下,因此无需额外指定-u选项相关内容。“3 2,6,8 * * *”表示每天的02:03:00、06:03:00、08:03:00分别执行一次命令:ls /usr/local。
4.减号(-)的使用举例。
例子中的“0 2-6 * * 6 df -h /”表示用户crontab在每周六的02:00、03:00、04:00、05:00、06:00执行命令:df -h / 。
5.斜杠(/)的使用举例。
例子中表示每隔2分钟执行一次命令:echo "GeekDevOps"/root/GeekDevOps.txt。
6.crontab的使用非常简单,很容易理解,只要在取值范围内设置执行的值基本是没有问题的。现在我们要删除已经设置的这些定时任务。
例子中,选项-r表示删除所有定时任务。选项-i表示在删除前进行再次确定,输入y或者Y才能真正删除。
7.备份我们设置的用户任务调度配置文件。
8.系统任务调度的使用举例。
系统任务调度与用户任务调度不一样,需要直接在/etc/crontab里面配置,如果需要指定用户,还需要在执行命令前指定用户名。通过crontab -l 命令是查看不到系统任务调度任务的。
通常来讲,linux下面的定时任务在执行后,都会给任务owner发邮件,可以去使用mail命令去查收一下邮件。
当然每次定时任务的执行也都会写日志的,无论成功还是失败,日志文件路径 /var/log/cron
不过建议自己在设定任务时,让你自己脚本里包含任务阶段性输出日志到指定的文件,这样方便自己检查任务的详细执行情况。
周期性的执行任务计划的软件,Linux定时任务软件的常用软件crond
cron是定时任务的软件名
crond是服务进程名,真正实现定时任务服务
crontab命令是用来设置定时任务
01.使用定时软件,可以每天每小时按你的需求重复的执行一项工作
02.类似生活中使用的闹钟,可以自动完成操作命令,定时备份系统数据信息。
01.定时任务服务环境准备
a. 启动crond服务
关闭crond服务:systemctl stop crond.service
启动crond服务:systemctl start crond.service
查看crond服务状态:systemctl status crond.service
b.设置开机自启动
开机自启动crond服务:systemctl enable crond.service
开机不启动crond服务:systemctl disable crond.service
02.系统定时任务
a. 系统定时任务周期:
每小时 目录/etc/cron.hourly
每一天 目录/etc/cron.daily
每一周 目录/etc/cron.weekly
每个月 目录/etc/cron.monthly
b. /etc/crontab 系统定时任务的配置文件之一(有记录定时任务格式)
c. 系统定时任务+logrotate命令 完成对日志的切割/日志轮询
/var/log/cron
/var/log/messages
/var/log/secure
02.用户定时任务
用户定时任务查看 crontab -l == cat /var/spool/cron/root
用户定时任务编辑 crontab -e == vim /var/spool/cron/root
定时任务配置文件 /var/spool/cron/root (root文件表示root用户设置的定时任务,文件名是根据用户名设置的)
注:定时任务常见提示信息
a. no crontab for root 当前用户没有编辑定时任务
b. Do you want to retry the same edit 定时任务编辑错误是否继续
03.定时任务编写语法格式:
定时任务常用符号
* 每
/n 每隔
- 连续区间
, 分隔
04.定时任务编写流程
a. 测试定时执行命令(定时任务执行的命令用绝对路径)
b. 编写定时任务信息(先编写注释信息,编写定时任务)
c. 检查定时任务效果:查看定时任务日志(可以临时修改定时任务每分钟执行,最终修改定时任务的时间)
定时任务对%不识别,百分号需要转义\%
尽量使用脚本文件实现
a. 测试定时执行脚本(定时任务执行的脚本利用绝对路径/bin/sh)
b. 编写定时任务信息(先编写注释信息,编写定时任务 在任务信息后边加上/dev/null 21 避免产生很多没用的小文件占用磁盘inode)
c. 检查定时任务效果:查看定时任务日志(可以临时修改定时任务每分钟执行,最终修改定时任务的时间)
定时任务编写要领
(1)为定时任务规则加必要的注释
(2)所有的定时任务尽量都以脚本的形式执行
(3)在执行的shell脚本前加上/bin/sh
(4)在定时任务中命令或脚本的结尾加上 /dev/null 21
(5)在指定用户下执行相关定时任务
(6)生产任务计划程序中不要随意打印输出信息,有输出的想法去掉
(7)定时任务执行的脚本哟啊存放到规范路径下
(8)配置定时任务要规范操作过程,减少出错
(9)定时任务脚本中程序命令及路径尽量用全路径
(10)时间变了%号要用反斜线转义(只有定时任务里时命令时需要)
(11)若脚本中调用了系统环境变量,要重现定义
(12)出错或无法执行,就检查/var/log/cron日志