定时任务命令是cond,crond就是计划任务linux定时任务,类似于我们平常生活中的闹铃,定点执行。
30.2)为何要用crond
计划任务主要是做一些周期性的任务linux定时任务linux下socket编程,例如下午3点定时备份数据、晚上23点开启网站疯抢插口、凌晨0点关掉占据插口等。
计划任务主要分为以下两种使用情况:
1.系统级别的定时任务
临时文件清除、系统信息采集、日志文件切割
2.用户级别的定时任务
定时向互联网同步时间、定时备份系统配置文件、定时备份数据库的数据。
30.3)crontab配置文件
[root@centos7~]#vim/etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
Fordetailsseeman4crontabsExampleofjobdefinition:.----------------minute(0-59)|.-------------hour(0-23)||.----------dayofmonth(1-31)|||.-------month(1-12)ORjan,feb,mar,apr...||||.----dayofweek(0-6)(Sunday=0or7)ORsun,mon,tue,wed,thu,fri,sat|||||*****user-namecommandtobeexecuted
备注:
1)*表示任意的(分、时、日、月、周)时间都执行
2)-表示一个时间范围段,如5-7点
3),表示分隔时段,如6,0,4表示周日、日、四
4)/1表示每隔n单位时间,如*/10每10分钟
30.4)crontab的时间编撰规范
0002***ls#每晚的深夜2点整执行
00021**ls#每月的1日的下午2点整执行
0002142*ls#每年的2月14日下午2点执行
0002**7ls#每周天的下午2点整执行
0002*65ls#每年的6月周六下午2点执行
000214*7ls#每月14日或每周日的下午2点都执行
00021427ls#每年的2月14日或每年2月的周天的下午2点执行
*/1002***ls#每晚下午2点arch linux,每隔10分钟执行一次
30.5)crontab命令选项
-e#编辑定时任务
-l#查看定时任务
-r#删掉定时任务
-u#指定其他用户
30.6)计划任务实践示例
示例1:使用root用户每2分钟执行一次时间同步
需提早安装软件包
[root@centos7~]#yuminstall-yntpdate
先在Linux系统上查看命令是否正确
[root@centos7~]#ntpdate
26Jul15:20:49ntpdate[19706]:steptimeserver203.107.6.88offset-1.696419sec
配置定时任务编辑定时任务
[root@centos7~]#crontab-e-uroot
每2分钟执行一次时间同步bywxgAt2019.07.26
*/2****/usr/sbin/ntpdate&>/dev/null
查看定时任务
[root@centos7~]#crontab-l-uroot
每2分钟执行一次时间同步bywxgAt2019.07.26
*/2****/usr/sbin/ntpdate&>/dev/null
30.7)计划任务怎么调试
30.7.1)crond调试
1)调整任务每分钟执行的频度,便于做后续的调试。
2)假如使用cron运行脚本,请将脚本执行的结果写入指定日志文件,观察日志内容是否正常。
3)命令使用绝对路径,避免难以找到命令引起定时任务执行形成故障。
4)通过查看/var/log/cron日志,便于检测我们执行的结果,便捷进行调试。
30.7.2.crond编撰思路
1.自动执行命令,之后保留执行成功的结果。
2.编撰脚本
脚本须要统一路径/scripts
脚本内容复制执行成功的命令(降低每位环节出错概率)
脚本内容尽可能的优化,使用一些变量或使用简单的判定句子
脚本执行的输出信息可以重定向至其他位置保留或写入/dev/null
3.执行脚本
使用bash命令执行,避免脚本没有降低执行权限(/usr/bin/bash)
执行脚本成功后,复制该执行的命令,便于写入cron
4.编撰计划任务
加上必要的注释信息,人、时间、任务
设定计划任务执行的周期
粘贴执行脚本的命令(不要手敲)
5.调试计划任务
降低任务频度测试
检测环境变量问题
检测crond服务日志/var/log/cron