1.定义:
如字面意思,定时的、自动的执行执行某项job。
2.定时任务使用情况?
系统使用: 日志切割( 系统日志 定时任务)
个人使用: 定时备份 定时清理 时间同步
3.定时任务如何使用?
语法格式:* * * * * user-name command to be executed
参数选项 | 描述 |
---|---|
-e | 编辑定时任务 |
-l | 查看使用-e编辑好的定时任务 |
-r | 删除定时任务 |
-u | 指定用户编辑定时任务 |
4.书写规范,可参考/etc/crontab
/etc/crontab 需要指定执行周期user 命令 ;可以将一些定期执行的任务放到一些目录下面,让系统帮我们调度,省去人维护成本
与crontab -e的区别
/etc/crontab是系统级的调度任务,用root权限去执行一些指定目录下的可运行文件,或者某些文件;可以编辑vi /etc/cronta
crontab -e是用户级的定期执行,可以crontab -e编辑修改,不需要指定user;实际是这个文件/usr/bin/crontab;
cron 会每分钟去读取一次 /etc/crontab 与 /var/spool/cron 里面的数据内容
5.计划任务如何调试
1.c'rontab注意事项
1.给定时任务注释
2.将需要定期执行的任务写入Shell脚本中,避免直接使用命令无法执行的情况tar date
3.定时任务的结尾一定要有&>/dev/null或者将结果追加重定向>>/tmp/date.log文件
4.注意有些命令是无法成功执行的 echo "123" >>/tmp/test.log &>/dev/null
5.如果一定要是用命令,命令必须使用绝对路径
2.crond编写思路
1.手动执行命令,然后保留执行成功的结果。
2.编写脚本
脚本需要统一路径/scripts
脚本内容复制执行成功的命令(减少每个环节出错几率)
脚本内容尽可能的优化, 使用一些变量或使用简单的判断语句
脚本执行的输出信息可以重定向至其他位置保留或写入/dev/null
3.执行脚本
使用bash命令执行, 防止脚本没有增加执行权限(/usr/bin/bash)
执行脚本成功后,复制该执行的命令,以便写入cron
4.编写计划任务
加上必要的注释信息, 人、时间、任务
设定计划任务执行的周期
粘贴执行脚本的命令(不要手敲)
5.调试计划任务
增加任务频率测试
检查环境变量问题
检查crond服务日志