++++++++++++++++++++++++++++++++++++++++++++++++
标题: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. Python基础(生成器)

    二.生成器(可以看做是一种数据类型) 描述: 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我 ...

  2. Image和Base64互相转换

    base64介绍: Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息.例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长 ...

  3. UmengAppDemo【友盟统计SDK集成以及多渠道打包配置,基于V7.5.3版本】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这里只是记录下集成友盟统计SDK以及简单配置多渠道打包的步骤.所以1.该Demo不能运行:2.配置多渠道打包只是一种简单的写法,具体 ...

  4. Java进阶篇设计模式之三 ----- 建造者模式和原型模式

    前言 在上一篇中我们学习了工厂模式,介绍了简单工厂模式.工厂方法和抽象工厂模式.本篇则介绍设计模式中属于创建型模式的建造者模式和原型模式. 建造者模式 简介 建造者模式是属于创建型模式.建造者模式使用 ...

  5. 强化学习(十)Double DQN (DDQN)

    在强化学习(九)Deep Q-Learning进阶之Nature DQN中,我们讨论了Nature DQN的算法流程,它通过使用两个相同的神经网络,以解决数据样本和网络训练之前的相关性.但是还是有其他 ...

  6. Spring Cloud番外篇-001

    熔断监控:Hystrix Dashboard Hystrix Dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard可以直观地看到个Hystrix Com ...

  7. 外行人都能看懂的SpringCloud,错过了血亏!

    一.前言 只有光头才能变强 认识我的朋友可能都知道我这阵子去实习啦,去的公司说是用SpringCloud(但我觉得使用的力度并不大啊~~)... 所以,这篇主要来讲讲SpringCloud的一些基础的 ...

  8. 关于获取资源文件,Class.getResource和ClassLoader.getResource的区别

    原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2019-02-22/29.html 作者:夜月归途 出处:http://www.guitu ...

  9. Vcomputer简介

    1.Vcompter存储程序式计算机虚拟机软件简介   Vcompter存储程序式计算机虚拟机软件的文件名为comp_alpha(一般要先安装java运行环境,然后双击该软件即可运行),该软件是桂林电 ...

  10. c# 制作正方形图片

    using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D ...