Linux进阶之路————crond定时任务调度
引言
crond 的概念和 crontab 是不可分割的。crontab 是一个命令,而 crond 是Linux 下用来周期性执行某种任务或等待处理某些事件的守护进程,类似于 Windows 下的计划任务。
当装完操作系统之后,默认便会安装 crond 服务工具,并会自动启动 crond 进程,crond 进程每分钟定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
Linux 下的定时任务种类
种类 | 使用场景 |
at | 适合仅执行一次就结束的调度命令,需要启动一个后端的atd服务。 |
crontab | 最常用的定时任务,需要启动一个服务crond才行,crond服务通过crontab命令实现 |
anacron | 无法周期性执行,只能以天为周期,但有个特点,在关机状态下未>执行的任务,下次开机时可以补上执行 |
crontab 工作原理
在 Linux 中,crontab 是最常用的定时任务工具,系统会每分钟循环检查任务列表,默认系统中可以登录的用户,都可以使用 crontab 定义计划任务。另外,还可以通过 /etc/cron.allow 文件来限制权限。
系统任务调度和用户任务调度
crontab 设置定时任务可以分为两类:
系统任务调度:指的是系统级别的周期性任务,如定期写磁盘、日志清理。/etc/crontab 文件就是系统任务调度的配置文件。
用户任务调度:通过 crontab -e 进行编写的任务,都属于用户任务调度,这类任务可以包括:用户数据备份、定时邮件提醒等。Linux 系统会将所有用户设置的定时任务存放到 /var/spool/cron 目录中,文件名与用户名一致:
执行 crontab -r 后,即直接删除用户 crontab 文件:
cron 表达式
【基本含义】
项目 | 含义 | 范围 |
---|---|---|
第一个* | 一小时当中的第几分钟 | 0-59 |
第二个* | 一天当中的第几小时 | 0-23 |
第三个* | 一个月当中的第几天 | 1-31 |
第四个* | 一年当中的第几月 | 1-12 |
第五个* | 一周当中的星期几 | 0-7(0和7 都代表星期日) |
【特殊符号含义】
特殊符号 | 含义 |
* | 任何时间。如第一个 * 代表每分钟都执行。 |
, | 不连续的时间,如:0 8,12 * * * ,表示每天8:00和12:00各执行一次。 |
- | 连续的时间段,如:0 5 * * 1-6,表示每周一到周六的5:00执行。 |
/ | 间隔时间,如:*/10 * * * * , 表示每隔 10 分钟执行一次,不看时间点。 |
crontab 基本应用
【语法】
crontab [-u user] [ -e | -l | -r ]
【常用参数】
-e 编辑 crontab 定时任务
-l 查询crontab 定时任务
-r 删除当前用户所有的 crontab 任务(终止任务调度)
【服务操作】
service crond restart 或 /sbin/service crond restart 重启任务调度服务
service crond stop 关闭服务
service crond start 启动服务
service crond reload 重新载入配置
查看crontab 运行日志
在 /var/log/cron-日期 文件中,可以看到定时任务的执行情况:
应用案例1
【案例要求】将 /etc 目录下的文件列表每分钟追加到 /tmp/to.txt 文件中。
【操作步骤】
1) cron -e
2) */1 * * * * ls -l /etc >>/tmp/to.txt
3)保存退出,即可生效
应用案例2
【案例要求】每天凌晨2点,将mysql数据库testdb,备份到文件mydb.bak中
1)先编写一个脚本文件,/home/mytask3.sh
/usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak
2)给mytask3.sh 一个可执行权限
chmod 744 /home/mytask3.sh
3)crontab -e
4)0 2 * * * /home/mytask3.sh
【注意】如果直接执行类似 * * * * * ls /home 或 * * * * * echo 'hello world' 这样的任务,Linux会每分钟发一封邮件给当前用户。保存在 /var/spool/mail/root 中。
Linux进阶之路————crond定时任务调度相关推荐
- Linux进阶之路————进程与服务管理
引言 在Linux 中,每个执行的程序(代码)都成为一个进程,Linux 为每一个进程分配了一个唯一的 id 号 - PID. 每个进程都会对应一个父进程,而这个父进程可以复制多个子进程,例如 www ...
- Linux进阶之路————磁盘查询
引言 承接<Linux进阶之路----Linux磁盘分区与挂载>,本文介绍实际生产中对于磁盘的监控和查询. 一.查询磁盘整体使用情况 基本语法: df -h 该命令会显示包括我们手动挂载的 ...
- Linux进阶之路————组管理与权限管理
引言 这篇博客将会总结一些关于组的概念和相关操作,以及文件的一些权限管理. 一.组的基本介绍 在前面的博文<Linux进阶之路----用户管理>已经有提到用户组的概念,实际上,组的概念并不 ...
- Linux进阶之路————Linux运行级别(重置密码)
引言 前面的<Linux进阶之路----开机.重启和用户登录注销>已经简单介绍过Linux系统运行级别的概念,今天来详细介绍和总结一下Linux的运行级别. inittab配置文件 在配置 ...
- Linux进阶之路-Ubuntu版
Linux进阶之路 @[TOC](Linux进阶之路) Linux 简介 概述 Linux 与 Windows 比较 安装 Linux 操作系统 Linux 远程控制管理 概述 OpenSSH XSh ...
- linux实操篇,定时任务调度
crond 任务调度 概述 任务调度:是指系统在某个时间执行的特定的命令或程序. 任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行.如病毒扫描等 个别用户工作:个别用户可能希望执行某些程序 ...
- 【Linux进阶之路】基本开发工具
前言 在正式开始之前我们先补充一个知识点--普通用户提权的操作. sudo [指令] 那如何将tmp1添加到信任白名单--sudoers文件 中呢? 肯定不能自己加,得超级管理员root加--第一步: ...
- Linux进阶之路——常用命令总结
一.帮助命令 help man type区分内建.外建命令 [扩展]关于内建命令与外建命令. 内建命令属于shell程序的一部分,包含一些比较简单的Linux命令.这些命令被写在/bin/bash 文 ...
- Linux进阶之路———Shell 编程入门
引言 通过 Shell 编程的学习,铺平架构师道路上的一块大砖. Shell 在Linux 系统中的定位如下所示: 一.第一个 Shell 脚本 我们通过一个简单的 Shell 脚本来感受一下. 在 ...
最新文章
- Android No static field XXX of type I in class Lcom/XXX/R$id错
- 优化gradle下载引用jar速度慢或者出错的问题
- php数据访问(查询)
- 2018/03/25
- 2.9 穆尔彭罗斯伪逆
- (Leetcode)买股票的最佳时机
- PKM2数据导出的xml显示用的XSL
- 将列表打印为表格数据
- 如何选择InstallShield工程类型
- android 圆形自定义进度条,Android自定义漂亮的圆形进度条
- 【语音定时播报系统】基于树莓派+百度语音合成打造语音定时播报系统
- springboot使用j2cache
- Python-docx python处理Word文档之加下划线
- java-nio网络编程
- 【应用统计学】几种常见的概率分布
- uni-app字符串数字转换
- MP | 东农吴凤芝/南农韦中-根系分泌物介导的植物种间互作塑造了根际微生物组抑病力...
- 阿里巴巴离职DBA职业生涯总结
- Zookeeper源码解析 -- 本地事务日志持久化之FileTxnLog
- Visual Studio 2017十五项新功能体验
热门文章
- Python 爬取淘宝商品信息栏目
- ubuntu搭建nodejs生产环境——快速部署手册
- Debian11安装VLC Media Player视频播放器
- Win10安装 WSL Ubuntu Linux系统,非双系统,完美兼容超详细版本
- C#中使用NPIO实现导入导出Excel简单操作
- Elasticsearch修改字段之别名,扩展数据迁移
- 编译后没有taget文件夹_maven资源文件的相关配置才会在编译后的target里面有
- python合并两个数据框_使用python合并两个数据框
- win7装mysql一直未响应_求助啊 WIN7下安装mysql出问题 老是说未响应~!!
- 权限申请_Android 开发工程师必须掌握的动态权限申请,三步轻松搞定!