++++++++++++++++++++++++++++++++++++++++++++++++
标题: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. Hadoop系列001-大数据概论

    本人微信公众号,欢迎扫码关注! 大数据概论 1.大数据概念 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才能具有更强的决策力.洞察发 ...

  2. 从壹开始前后端分离[.netCore 不定期 ] 36 ║解决JWT自定义中间件授权过期问题

    缘起 哈喽,老张的不定期更新的日常又开始了,在咱们的前后端分离的.net core 框架中,虽然已经实现了权限验证<框架之五 || Swagger的使用 3.3 JWT权限验证[修改]>, ...

  3. python接口自动化(十一)--发送post【data】(详解)

    简介 前面登录博客园的是传 json 参数,由于其登录机制的改变没办法演示,然而在工作中有些登录不是传 json 的,如 jenkins 的登录,这里小编就以jenkins 登录为案例,传 data ...

  4. .NET Core微服务之基于Jenkins+Docker实现持续部署(Part 1)

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.CI, CD 与Jenkins 互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous i ...

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

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

  6. WebApiClient的JsonPatch局部更新

    1. 文章目的 随着WebApiClient的不断完善,越来越多开发者选择WebApiClient替换原生的HttpClient,本文将介绍使用WebApiClient来完成JsonPatch提交的新 ...

  7. Asp.Net Core 轻松学-利用xUnit进行主机级别的网络集成测试

    前言     在开发 Asp.Net Core 应用程序的过程中,我们常常需要对业务代码编写单元测试,这种方法既快速又有效,利用单元测试做代码覆盖测试,也是非常必要的事情:但是,但我们需要对系统进行集 ...

  8. 1.4部署到IIS「深入浅出ASP.NET Core系列」

    希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. 很多人第一次在IIS中部署Asp.Net Core App的人都会遇到问题,会发现原来的部署方式无法运行Asp.N ...

  9. springcloud情操陶冶-bootstrapContext(三)

    本文则将重点阐述context板块的自动配置类,观察其相关的特性并作相应的总结 自动配置类 直接查看cloudcontext板块下的spring.factories对应的EnableAutoConfi ...

  10. kubectl自动补全

    source <(kubectl completion bash) echo "source <(kubectl completion bash)" >> ...