day24——定时任务

1.定义:

如字面意思,定时的、自动的执行执行某项job。

2.定时任务使用情况?

系统使用: 日志切割( 系统日志 定时任务)

个人使用: 定时备份 定时清理 时间同步

3.定时任务如何使用?

语法格式:* * * * * user-name command to be executed

参数选项 描述
-e 编辑定时任务
-l 查看使用-e编辑好的定时任务
-r 删除定时任务
-u 指定用户编辑定时任务

4.书写规范,可参考/etc/crontab

/etc/crontab 需要指定执行周期user 命令 ;可以将一些定期执行的任务放到一些目录下面,让系统帮我们调度,省去人维护成本

image.png

与crontab -e的区别

  1. /etc/crontab是系统级的调度任务,用root权限去执行一些指定目录下的可运行文件,或者某些文件;可以编辑vi /etc/cronta

  2. crontab -e是用户级的定期执行,可以crontab -e编辑修改,不需要指定user;实际是这个文件/usr/bin/crontab;

  3. 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服务日志

你可能感兴趣的:(day24——定时任务)