10.23 linux任务计划cron
时间:2022-04-27
本文章向大家介绍10.23 linux任务计划cron,主要内容包括Linux任务计划、任务计划、linux中计划的配置文件、启动crond服务、任务计划不执行的原因分析、任务计划备份、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
Linux任务计划
- crontab -u、-e、-l、-r
- 格式:分 时 日 月 周 user command
- 文件/var/spool/cron/username
- 分范围0-59,时范围0-23,日范围1-31,月范围1-12,周1-7
- 可用格式1-5表示一个范围1到5
- 可用格式1,2,3表示1或者2或者3
- 可用格式*/2表示被2整除的数字,比如小时,那就是每隔2小时
- 要保证服务是启动状态
- systemctl start crond.service
crontab命令
- crontab -e //编辑
- crontab -l //列出 -crontab -r //删除
- crontab -u username -l //指定用户
任务计划
- crontab -e //编辑
- 在linux系统中,系统计划是必不可少的,比如备份数据,重启服务等
- 操作过程,可能是一个脚本,有可能是一个单独的命令,在特定的时间去执行它,所以任务计划是不可缺少的
- 在windows中都是使用的个人电脑,所以任务计划很少见,几乎用不到
linux中计划的配置文件
- cat /etc/crontab //查看任务计划的配置文件
- 文件中会定义几个变量
- SHELL=/bin/bash
- PATH环境变量,它命令的路径
- MAILTO发邮件给谁
- 文件中会定义几个变量
[root@hanfeng ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59) //分钟
# | .------------- hour (0 - 23) //小时
# | | .---------- day of month (1 - 31) //日期
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ... //月份,可以写数字,也可以写英文的简写
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat //星期,0或7都表示周日,也可以写成英文的简写
# | | | | |
# * * * * * user-name command to be executed //用户,不写用户就是root 最后一列,是你要执行的命令
[root@hanfeng ~]#
- crontab -e 进入到crontab的配置文件中,用法和vim一样
- 按 i 进入编辑模式
- 分钟,小时,日,月,星期,然后后面跟具体的命令
- 凌晨3点去执行,* 表示所有的意思
每天凌晨三点,执行123.sh脚本文件,正确的和错误的日志都输出到123.log文件中
0 3 * * * /bin/bash /usr/local/sbin/123.sh >/tmp/123.log 2>/tmp/123.log
因为是每天三点执行脚本,所以可以写成追加,每天都去记录日志
0 3 * * * /bin/bash /usr/local/sbin/123.sh >>/tmp/123.log 2>>/tmp/123.log
若想1-10号,双月去执行该脚本,后面就不在执行了——>只要 被2 整除,就符合条件
0 3 1-10 */2 * /bin/bash /usr/local/sbin/123.sh >>/tmp/123.log 2>>/tmp/123.log
只要周2和周5执行该文件
0 3 1-10 */2 2,5 /bin/bash /usr/local/sbin/123.sh >>/tmp/123.log 2>>/tmp/123.log
- 为什么没有年份?
- 用星期确定你的唯一性,比如说今年的6月18号和明年的6月18号的星期肯定是不同的,这样就可以确定某一天的唯一性
启动crond服务
- 若想要这个任务正常使用,还需要去启动crond服务
- systemctl start crond.service //启动crond服务
- 若想检查服务是否成功启动,
- 方法一:可使用ps aux |grep cron 命令查看
- 若有这个进程,说明这个服务已经启动了
- 方法二:使用systemctl start crond 查看状态
- 若是 绿色 ,则表示该服务已经启动了
- 若是该服务已经停掉了,则不会有颜色
- 方法一:可使用ps aux |grep cron 命令查看
任务计划不执行的原因分析
- 在写了一个计划,放入到配置文件中,但就是不执行
- 不执行的原因很有可能是你写的脚本里面,没有使用 绝对路径 的原因导致不执行
- 因为很有可能,你在使用的命令不在PATH里面,所以要么将命令写一个绝对路径,要么将命令的路径加入到PATH变量里面去
- 建议:在写一个脚本的时候,都要写追加一个日志,这样可以保证这个任务有据可查,再不执行的时候,查看错误日志即可
任务计划备份
- crontab -l //列出
- crontab文件存在位置/var/spool/cron/username
- 在需要备份的时候,直接把这个文件,或者目录拷贝下即可
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 4种主流超参数调优技术
- PyTorch 最佳实践:模型保存和加载
- 突击并发编程JUC系列-启航篇
- 拜托!别再问我多线程的这些问题了
- Tomcat 架构原理解析到架构设计借鉴
- C++核心准则T.65:使用标签分发提供函数的不同实现
- Java开发中Websocket的技术选型参考
- Java 15正式发布,腾讯做出了突出贡献
- Mybatis是如何向Spring注册Mapper的
- 打卡群刷题总结0917——买卖股票的最佳时机
- Fiddler对安卓App抓包(逍遥模拟器APP)
- 为何Android 7.0 以上Charles和Fiddler无法抓取HTTPS包?
- 快速上手百度大脑EasyDL专业版·物体检测模型(附代码)
- 极端情况下收缩 Go 进程的线程数
- C++核心准则T.60:最小化模板对上下文的依赖