++++++++++++++++++++++++++++++++++++++++++++++++
标题:Linux操作系统的计划任务
内容:计划任务分为单次任务和周期性任务,周期任务分为系统级计划任务和用户级计划任务
重点:重点掌握周期性计划任务,at单次任务作为了解内容,在本章最后进行简单介绍
时间:2019年4月22日
++++++++++++++++++++++++++++++++++++++++++++++++
1. 计划任务分类
定时任务分为单次计划任务和周期性计划任务
周期性计划任务分为系统级周期任务和用户级周期任务

2. 计划任务的特点(crond)
[root@test ~]# ps aux |grep 'crond' |grep -v 'grep' //计划任务的进程
root 1791 0.0 0.0 117296 1384 ? Ss 01:55 0:00 crond
[root@test ~]# ll /var/log/cron //计划任务的日志
-rw-------. 1 root root 11408 Apr 19 06:01 /var/log/cron
注意:
crond服务会每个1分钟对计划任务进行一次检查,以执行需要运行的计划任务
计划任务执行时不会讲内容显示在终端上,而是通过邮件进行通知

3. 系统级周期计划任务
3.1 定义方式1
[root@test ~]# vim /etc/crontab //默认该文件中没有任何计划任务,介绍了定义计划任务的格式
# 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
# | | | | |
# * * * * * user-name command to be executed
* * * * * root cd /home/ ; ls
0 0 * * * root /bak_bash/mysql_bak.sh
0 2 * * * alice run-parts /cron-test
注意:
计划任务的解读读到第一个"*"符号即可。
生产环境中(服务器)的计划任务最高一般不会超过月,常见的是天。
计划任务中提到的日和月是且的关系。
计划任务中提到的日和星期是或的关系。

3.2 定义方式2
[root@test ~]# ls /etc/cron.hourly/
0anacron
[root@test ~]# ls /etc/cron.daily/
cups logrotate makewhatis.cron mlocate.cron prelink readahead.cron tmpwatch
[root@test ~]# ls /etc/cron.weekly/
[root@test ~]# ls /etc/cron.monthly/
readahead-monthly.cron
例如:现在某个任务,需要每小时进行执行一次,可以直接将脚本放在/etc/cron.hourly/

3.3 系统级计划任务流程
[root@test ~]# ps aux |grep 'crond' |grep -v 'grep' //计划任务的进程没分中检查计划任务
root 1791 0.0 0.0 117296 1384 ? Ss 01:55 0:00 crond
[root@test ~]# cat /etc/crontab
[root@test ~]# ls /etc/cron.hourly/
0anacron
[root@test ~]# cat /etc/crontab //该脚本会启动一个进程,该进程存在一个配置文件
/usr/sbin/anacron -s
[root@test ~]# cat /etc/anacrontab
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
问题:如何能够确认计划任务在定义的时间之内被执行过呢????
[root@test ~]# ll /var/spool/anacron/ //对应到anacrontab进程的JOB ID
-rw-------. 1 root root 9 Apr 19 04:12 cron.daily
-rw-------. 1 root root 9 Apr 19 03:18 cron.monthly
-rw-------. 1 root root 9 Apr 19 04:32 cron.weekly
[root@test ~]# cat /var/spool/anacron/cron.daily
20190419

4. 用户级计划任务
[root@test ~]# ll /var/spool/cron/root //root用户的计划任务文件
[root@test ~]# crontab -u mysql -e //编辑几家任务
[root@test ~]# crontab -u mysql -l //查看计划任务
* * * * * cd /home/ ; ls
[root@test ~]# mail //确认计划任务已经执行
[root@test ~]# crontab -u mysql -r //清除计划任务
注意:
与系统计划任务略有不同,不需要指定用户去执行
* * * * * /mysql_bak.sh //每分钟执行一次
0 * * * * /mysql_bak.sh //每小时执行一次
0 2 * * * /mysql_bak.sh //每天2:00执行一次
0 2 1 * * /mysql_bak.sh //每月1日2:00执行一次
0 */2 * * /mysql_bak.sh //每个两个小时执行一次
0 2 * * 0 /mysql_bak.sh //每月1日或每星期日执行一次

5. at定时任务
[root@test ~]# at now +2min //创建任务
at> useradd alice
at> echo "alice" |passwd --stdin alice
job 2 at 2019-04-19 06:50
[root@test ~]# atq root //任务查询
2 2019-04-19 06:50 a root
[root@test ~]# id alice
uid=501(alice) gid=501(alice) groups=501(alice)
[root@test ~]# at now +2min
at> cd /home/;ls
at> <EOT>
job 3 at 2019-04-19 06:52
[root@test ~]# atq root
3 2019-04-19 06:52 a root
[root@test ~]# atrm 3 //删除任务
[root@test ~]# atq
[root@test ~]# atq root

Linux操作系统计划任务的更多相关文章

  1. Linux任务计划

    Linux任务计划: 一次性任务执行(at.batch): at:定时任务,指定一个时间执行一个任务,只能执行一次. at使用方式: 交互式:让用户在at>提示符输入多个要执行的命令: 批处理: ...

  2. 在Linux操作系统下备份恢复技术的应用 转自https://yq.aliyun.com/articles/50205?spm=5176.100239.blogcont24250.9.CfBYE9

    摘要: 安全防护:在Linux操作系统下备份恢复技术的应用  原文参见:http://linux.chinaunix.net/techdoc/system/2005/12/19/925898.shtm ...

  3. 使用 /proc 文件系统来访问 linux操作系统 内核的内容 && 虚拟文件系统vfs及proc详解

    http://blog.163.com/he_junwei/blog/static/19793764620152743325659/ http://www.01yun.com/other/201304 ...

  4. linux操作系统cron详解

    Linux操作系统定时任务系统 Cron 入门 cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业.由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动 ...

  5. SUSE(Linux操作系统)

    suse linux 即 SUSE (Linux操作系统) . SUSE(发音为/zuz?/),发音的音频文件.SUSE Linux 原来是德国的 SuSE Linux AG公司发行维护的Linux发 ...

  6. 了解Linux操作系统发展阶段

    一.硬件与软件发展历史 计算机由硬件和软件组成结构 二.Linux的发展史 Linux 操作系统是Unix操作系统的一种克隆系统.它诞生于1991年的10月5日(只是第一次正式向外公布的时间).以后借 ...

  7. Linux 的计划任务

    Linux操作系统定时任务系统 Cron 入门 cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业.由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动 ...

  8. 2011年排名前七位的Linux操作系统。

    下面列出了2011年排名前七位的Linux操作系统. Ubuntu Ubuntu 是一个由全球化的专业开发团队建造的操作系统.它包含了所有您需要的应用程序:浏览器.Office 套件.多媒体程序.即时 ...

  9. Linux 的计划任务(运维基础|可用于提权)

    Linux操作系统定时任务系统 Cron 入门 先写笔记: crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数 crontab -l //列出某个用户 ...

随机推荐

  1. Nginx/LVS/HAProxy 负载均衡软件的优缺点详解

    Nginx/LVS/HAProxy 负载均衡软件的优缺点详解   Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验 ...

  2. SignalR使用笔记

    最近项目要求添加一个给用户发送消息的功能,就决定使用SignalR.翻到了以前学习SignalR的学习笔记,基本是官方文档的简版整理,便于快速阅览和实现. 1. nuget添加signalr引用: a ...

  3. js node.js 编写命令工具demo

    1 创建文件夹cli-demo 2 执行npm init  3 创建cli.js 文件 内容如下: //js文件变成可执行文件 #!/usr/bin/env node console.log(&quo ...

  4. Python基础(time模块,datetime模块)

    #Author : Kelvin #Date : 2019/1/6 15:10 import time #获取此时的时间戳(从此刻到1970年一月一号零点的秒数) res1=time.time() p ...

  5. 【重学计算机】计组D1章:计算机系统概论

    1.冯诺依曼计算机组成 主机(cpu+内存),外设(输入设备+输出设备+外存),总线(地址总线+数据总线+控制总线) 2.计算机层次结构 应用程序-高级语言-汇编语言-操作系统-指令集架构层-微代码层 ...

  6. Jenkins高级用法 - Jenkinsfile 介绍及实战经验

    系列目录 1.Jenkins 安装 2.Jenkins 集群 3.Jenkins 持续集成 - ASP.NET Core 持续集成(Docker&自由风格&Jenkinsfile) 4 ...

  7. 理解 Linux 中 `ls` 的输出

    ls 的输出会因各 Linux 版本变种而略有差异,这里只讨论一般情况下的输出. 下面是来自 man page 关于 ls 的描述: $ man ls ls - list directory cont ...

  8. 使用JDBC连接操作数据库

    JDBC简介 Java数据库连接(Java Database Connectivity,JDBC),是一种用于执行SQL语句的Java API,它由一组用Java编程语言编写的类和接口组成. JDBC ...

  9. Springboot 系列(十一)使用 Mybatis(自动生成插件) 访问数据库

    1. Springboot mybatis 介绍 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数获取 ...

  10. K2制作流程

    K2流程制作注意事项 1:分析需求 2:实施 步骤1:绘制流程图 步骤2:添加datafield[必备:ActJumped  IsPass] 步骤3:添加线规则(如下图所示,在添加完毕规则之后,再给同 ...