crontab命令加载和使用
crontab命令用于设置周期性被执行的指令。
在Linux系统中,Linux任务调度的工作主要分为以下两类:
1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置
首先查看有无安装crontab
[root@localhost gjw]# rpm -qa | grep cron
cronie-1.4.11-23.el7.x86_64
如果没有安装,找相关rpm包下载,然后安装rpm包:
[root@localhost gjw]# rpm -ivh cronie-1.4.11-23.el7.x86_64.rpm --nodeps
warning: cronie-1.4.11-23.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:cronie-1.4.11-23.el7 ################################# [100%]
然后可以进行crontab -e进行编辑,虽然crontab可用了,但是是否加入到开机运行还得查看是否已启动crond,可以用 ps -ef|grep crond
如果没有启动,可以用如下命令启动:
#服务状态控制
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
/sbin/service crond status //查看状态
或者使用
service crond start
service crond stop
service crond restart
service crond reload
service crond status
下边是查询状态,此时服务没开
[root@localhost eq]# service crond status
Redirecting to /bin/systemctl status crond.service
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Wed 2020-11-04 14:32:57 CST; 5min ago
Process: 6328 ExecStart=/usr/sbin/crond -n $CRONDARGS (code=exited, status=0/SUCCESS)
Main PID: 6328 (code=exited, status=0/SUCCESS) Nov 04 14:30:45 localhost systemd[1]: Started Command Scheduler.
Nov 04 14:30:45 localhost systemd[1]: Starting Command Scheduler...
Nov 04 14:30:45 localhost crond[6328]: (CRON) INFO (Syslog will be used instead of sendmail.)
Nov 04 14:30:45 localhost crond[6328]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 68% if used.)
Nov 04 14:30:45 localhost crond[6328]: (CRON) INFO (running with inotify support)
Nov 04 14:32:57 localhost systemd[1]: Stopping Command Scheduler...
Nov 04 14:32:57 localhost systemd[1]: Stopped Command Scheduler.
crontab命令的格式
我们如果要创建自己的一个任务调度,可以使用 crontab -e 这个命令,如:
[root@xiaoluo ~]# crontab -e
此时会进入到vi编辑界面,来编写我们要调度的任务,crontab调度命令的格式如下:
* * * * * command path // 前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,即命令字段,其中包括了crontab调度执行的命令。 各个字段之间用spaces和tabs分割。
调度命令的规则:
| 字段名称 | 说明 | 取值范围 |
| 分钟 | 每小时的第几分钟执行 | 0-59 |
| 小时 | 每日的第几个小时执行 | 0-23 |
| 日期 | 每月的第几天执行 | 1-31 |
| 月历 | 每年的第几月执行 | 1-12 |
| 星期 | 每周的第几天执行 | 0-6 |
| 命令名称 | 欲执行的命令及参数 |
crontab命令中的一些常用特殊符号:
| 符号 | 说明 |
| * | 表示任何时刻 |
| , | 表示分割 |
| - | 表示一个段,如第二段里: 1-5,就表示1到5点 |
| /n | 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1. |
如果执行crontab -e 报错
[root@localhost eq]# crontab -e
no crontab for root - using an empty one
/bin/sh: /usr/bin/vi: No such file or directory
crontab: "/usr/bin/vi" exited with status 127
如果有vim可执行
[root@localhost packages]# cd /usr/bin/
[root@localhost bin]# ln -s vim vi
[root@localhost bin]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
①实例一:如果我希望每隔一分钟,就将系统的时间写入到/home目录下的date1.txt文件里面,则输入下面的命令
[root@xiaoluo ~]# crontab -e 在crontab命令编辑界面输入crontab命令: * * * * * date >> /home/date1.txt
(前面五个* * * * *表示时间是每隔一分钟 date命令就是得到当前的系统时间, >> 命令表示将结果累加到文件后面 > 命令则表示将结果覆盖文件 )
保存以后如果出现 crontab: installing new crontab 这句话,则表示该调度命令已经成功
## 使用实例
### 实例1:每1分钟执行一次command
命令:
* * * * * command ### 实例2:每小时的第3和第15分钟执行
命令:
3,15 * * * * command ### 实例3:在上午8点到11点的第3和第15分钟执行
命令:
3,15 8-11 * * * command ### 实例4:每隔两天的上午8点到11点的第3和第15分钟执行
命令:
3,15 8-11 */2 * * command ### 实例5:每个星期一的上午8点到11点的第3和第15分钟执行
命令:
3,15 8-11 * * 1 command ### 实例6:每晚的21:30重启smb
命令:
30 21 * * * /etc/init.d/smb restart ### 实例7:每月1、10、22日的4 : 45重启smb
命令:
45 4 1,10,22 * * /etc/init.d/smb restart ### 实例8:每周六、周日的1 : 10重启smb
命令:
10 1 * * 6,0 /etc/init.d/smb restart ### 实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb
命令:
0,30 18-23 * * * /etc/init.d/smb restart ### 实例10:每星期六的晚上11 : 00 pm重启smb
命令:
0 23 * * 6 /etc/init.d/smb restart ### 实例11:每一小时重启smb
命令:
* */1 * * * /etc/init.d/smb restart ### 实例12:晚上11点到早上7点之间,每隔一小时重启smb
命令:
0 23-7 * * * /etc/init.d/smb restart ### 实例13:每月的4号与每周一到周三的11点重启smb
命令:
0 11 4 * mon-wed /etc/init.d/smb restart ### 实例14:一月一号的4点重启smb
命令:
0 4 1 jan * /etc/init.d/smb restart ### 实例15:每小时执行/etc/cron.hourly目录内的脚本
命令:
01 * * * * root run-parts /etc/cron.hourly
说明:
run-parts这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是目录名了
crontab命令加载和使用的更多相关文章
- 用UBOOT自带loadb命令加载应用程序到SDRAM中运行的方法
S3C44B0开发板中,用UBOOT自带loadb命令加载应用程序到SDRAM中运行的方法 1.开发板说明: 开发板上已有移植好的UBOOT运行. 2.交叉编译工具链为arm-linu-g ...
- 使用composer命令加载vendor中的第三方类库
1.首先下载需要的第三方类库,放在TP框架下的vendor文件夹下 2.给第三方类库SDK写上命名空间,命名空间为该类库的文件夹对应的名字 3.在composer.json文件中添加需要加载的第三方类 ...
- SuperSocket命令加载器 (Command Loader)
在某些情况下,你可能希望通过直接的方式来加载命令,而不是通过自动的反射. 如果是这样,你可以实现你自己的命令加载器 (Command Loader): public interface IComman ...
- SuperSocket命令和命令加载器
关键字: 命令, 命令加载器, 多命令程序集 命令 (Command) SuperSocket 中的命令设计出来是为了处理来自客户端的请求的, 它在业务逻辑处理之中起到了很重要的作用. 命令类必须实现 ...
- 通过DOS、SHELL批处理命令加载Lib并编译和打包Java项目(或者运行项目)
有些时候,需要通过DOS批处理来编译整个项目的JAVA文件:并且编译后还要对Class文件进行打包成jar文件...这还不是最烦的,最烦的是,编译和打包的时候需要依赖其他多个jar文件,困难就这么来了 ...
- 脚本命令加载外部配置文件夹conf
加载log4j配置文件 Log4iConfigurer类 public class Log4iConfigurer { private static boolean INITIALIZED = fal ...
- Linux设备驱动程序加载/卸载方法 insmod和modprobe命令
linux加载/卸载驱动有两种方法. 1.modprobe 注:在使用这个命令加载模块前先使用depmod -a命令生成modules.dep文件,该文件位于/lib/modules/$(uname ...
- nginx中有关命令和日志切割,配置文件加载的详细阐述
一.Nginx简介 Nginx (“engine x”) 是俄罗斯人Igor Sysoev(塞索耶夫)编写的一款高性能的 HTTP 和反向代理服务器.Nginx 已经在俄罗斯最大的门户网站── Ram ...
- ES6模块加载
两种加载方式 加载方式 规范 命令 特点 运行时加载 CommonJS/AMD require 社区方案,提供了服务器/浏览器的模块加载方案 非语言层面的标准 只能在运行时确定模块的依赖关系及输入/输 ...
- Hive中数据的加载和导出
原文:http://blog.javachen.com/2014/06/09/hive-data-manipulation-language.html 关于 Hive DML 语法,你可以参考 apa ...
随机推荐
- DRF的安装和基本增删查改的简单使用
1.app注册 2.建表 3.创建ser.py(重点) 4.views.py代码(重点) queryset:指明该视图集在查询数据时使用的查询集 serializer_class:指明该视图在惊醒序列 ...
- NSQ(8)-有赞相关改进
如何保证消息队列的高可用(HA) NSQ 本身就是一个分布式消息队列,且支持水平扩展,无单点故障,能在无中断的情况下无缝添加集群结点. nsq用到了集群去保证整个服务的高可用,但并不能保证单个topi ...
- 小程序modal弹窗
[注意]css放的位置可能影响效果 参考a-level competitionFilterCover 1.容器:position: absolute; top: 100vh; animation: m ...
- Vulnhub 靶场 DOUBLETROUBLE: 1
Vulnhub 靶场 DOUBLETROUBLE: 1 前期准备 靶机地址:https://www.vulnhub.com/entry/doubletrouble-1,743/ kali攻击机: 靶机 ...
- Paddiing 组件
一.Flutter Paddiing 组件 在 html 中常见的布局标签都有 padding 属性,但是 Flutter 中很多 Widget 是没有 padding 属性.这个时候我们可以用 Pa ...
- 原生js实现折线图
不借助Echarts等图形框架原生JS快速实现折线图效果 1. 折线图效果预览 例如下图所示的折线图效果实现就很简单: 调用下面这段JS代码中的方法就好了: 假设页面上需要连接的所有点元素集合是ele ...
- MYSQL5.7索引异常引发的锁超时处理记录
原始sql: update a set a.x=x where a.xid in (select b.xid from b inner join c on b.xxx = c.xxx) and a.x ...
- maven重点分析
目录 什么是maven pom.xml 约定大于配置 根元素和必要配置 父项目和parent元素 项目构建需要的信息 路径管理 资源管理 详细使用 filtering的使用 怎么理解pom中多个res ...
- 睿爸信奥-【临阵磨枪】练习赛(第一场)- T3
目录 题面 题目背景 输入格式 输出格式 思路 code 题面 题目背景 徐老师很胖,长宽高比例为1:1:1,他每次走路都要滚来滚去~~现在假设在一个平面上有 n 个没有公共点公共点的圆.徐老师要从点 ...
- js 表格分页,ajax请求后台数据前台分页
$(function(){ var url="后台给的地址"; var shuju=document.getElementById("shuju"); cons ...