++++++++++++++++++++++++++++++++++++++++++++++++
标题: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. js node.js 编写命令工具demo

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

  2. 你真的了解webview么?

    你真的了解webview么? 写在前面: Webview是我们前端开发从PC端演进到移动端的一个重要载体,现在大家每天使用的App,webview都发挥着它的重要性.接下来让我们从webview看世界 ...

  3. 辅助模式最终考验的是想象力,先来看看怎么用!| Accessibility

    一.序 Hi,大家好,我是承香墨影! Android 的辅助模式(Accessibility)功能非常的强大.基本上被获取到授权之后,可以监听手机上的任何事件,例如:屏幕点击.窗口的变化.以及模拟点击 ...

  4. linux下利用nohup后台运行jar文件包程序

    Linux 运行jar包命令如下: 方式一: java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 ...

  5. Jenkins集群搭建

    Jenkins的目的是加快CI/CD的步伐,集群的搭建也不是必须的,当一台服务器的构建速度受到限制下,可以考虑使用主从并发构建,来加快构建速度.作为一款超级管家的角色,Jenkins的资料非常多,Je ...

  6. 浅谈Promise

    学习过JavaScript的人都知道,JavaScript是单线程作业,这样会有一个很大的缺陷,所有的Ajax,浏览器事件等,都是通过异步去完成.所谓的同步和异步最大的区别无非就是在于同步会阻塞后续代 ...

  7. K2制作流程

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

  8. Microsoft.Office.Interop.Excel 报错

    Microsoft.Office.Interop.Excel 报错 引用dll 在以下目录 C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop. ...

  9. ITSA(IT Strategy and Architecture)方法介绍

    Architecture Capability – At a Glance Architectural coherence part1 Architectural coherence part2 SA ...

  10. vue中的tab栏切换内容变换

    <!DOCTYPE html> <html lang="cn-zh"> <head> <meta charset="UTF-8& ...