当前位置: 首页 > news >正文

配置Linux任务计划

标签:

任务计划

linux计划任务

linux任务计划

crontab

 分类: Linux
   Linux有三种计划任务:

  at:指定一个时间执行一个任务 (适用一个或多个任务,执行一次后就不用)

  cron:根据一个时间表自动执行任务 (使用一个或多个任务,周期性执行)

  系统级别的计划任务及其扩展anacron:在一个指定时间间隔错过后自动执行任务

   一、at服务:安排一个任务在未来执行,需要一个atd的系统后台进程

  #at now+2 minutes 回车

  >输入要执行的命令

  >ctrl+d 结束输入

  atq;查询当前的等待任务

  用atq来查询,已经运行的任务,就消失了。这就是at计划任务的重点,只运行一次

  atrm:删除等待任务

  启动计划任务后,如果不想启动设定好的计划任务可以使用atrm命令删除。

  格式:atrm 任务号

  命令后面跟计划任务编号,如果不跟,就会删除这个用户所有的计划任务。

  还可以进入到/var/spool/at目录里把计划任务删除,计划任务的文件都保存在该目录里,可以用rm -f 文件名来删除(以文件的形式删除计划任务,因为计划任务是以文件形式保存在该目录中)

  在通常情况下,超级用户都可以使用这个命令。对于其他用户来说,能否可以使用就取决于两个文件:/etc/at.allow和/etc /at.deny

  如果你要让哪个用户不能使用计划任务,就直接把他的用户名写进去就可以了,一排只能写一个。

  同时写入allow 及deny, 允许.

   二、cron服务

  上面已经简单介绍了cron的一些进程和控制。下面我们来看看cron怎么实现。

  相对与at,cron的优点就是能够周期性的执行某个命令,at却只能执行一次

  cron的后台进程名字是crond ,cron也是system V的服务,所以我们可以service crond start|stop 来启动和关闭此服务,也可以使用chkconfig或者ntsysv来选择cron服务的默认开启,这些命令在以前我们都讲过的

  #crontab -e 编辑当前用户的cron表

  #crontab -l 查看当前用户的cron表

  #crontab -r 删除当前用户的cron进程

  #crontab -u 用户名 以某用户的身份来控制cron表

  还有个重要的知识点,就是当用户的计划任务建立后是存放在/var/spool/cron这个目录

  当使用crontab -e编辑当前用户的cron表后,会出现一个vi文件,cron的格式是这样的。分成两列,左边是时间,右边是运行的命令。时间是由5个部分组成。

  例:

  * * * * * wall hello everyone

  5个星号分别代表:minute hour day-of-month month-of-year day-of-week 分时日月周,而wall hello everyone 这是命令内容。上面的意识是每分每小时每天每月每周广播hello everyone。具体时间大家可以自己定义。如果要每两分钟发送就用*/2代替第一个*。也可以是用具体时间来表示。

  Crontab –e 编辑的任务不要加入用户名

  第一个*星号代表个小时的第几分钟:minute 范围是从0-59

  第二个*星号代表每天的第几个小时:hour 范围是从0-23

  第三个*星号代表每月的第几个日:day-of-month 范围从1-31

  第四个*星号代表没年的第几个月:month-of-year 范围从1-12

  第五个*星号代表每周的星期几:day-of-week 范围从0-6,其中0表示星期日

  用户名:也就是执行程序要通过哪个用户来执行,这个一般可以省略;

  命令:执行的命令和参数。

  如果我要表示9月10日25分执行ls var/spool/cron任务怎么表示?

  25 * 10 9 * ls var/spool/cron

  */1 * * * 0 wall Hello redking.blog.51cto.com

  */ 表示每多少分钟执行一次哈~

  当制定了cron任务后,可以用crontab -l查看, 也可以到/var/spool/cron/目录查看。里面的文件名字就是对应用户的cron任务

  可以使用crontab -r 来删除当前用户的cron

  vim /etc/crontab 与crontab -e写入的定时运行有什么区别?

  vim /etc/crontab:是系统级别定义的crontab,/etc/crontab的所有者和组都是root

  crontab -e :是用户自定义的crontab,是所有的用户都可以写入的

  两种方法记录的位置不一样,一个在/etc/ 另一个在/var/ 里面。都被cron服务调用哈~

   三、系统级别的计划任务及其扩展anacrontab

  anacrontab就是系统计划任务的扩展文件:在一个指定时间间隔错过后自动执行任务

  这个是系统设置好了,清理系统垃圾或者是自动执行某些脚本的系统任务,一般我们做了解就行了,不要更改

  配置文件是/etc/anaconrtab

1. # /etc/anacrontab: configuration file for anacron
2. # See anacron(8) and anacrontab(5) for details.
3. SHELL=/bin/sh
4. PATH=/sbin:/bin:/usr/sbin:/usr/bin
5. MAILTO=root
6. #####格式是这样的:period(频率.天数) delay(延迟,分钟) job- identifier command
7. 1 65 cron.daily run-parts /etc/cron.daily
8. 7 70 cron.weekly run-parts /etc/cron.weekly
9. 30 75 cron.monthly run-parts /etc/cron.monthly

  SHELL:就是运行计划任务的解释器,默认是bash

  PATH:执行命令的环境变量

  MAILTO:计划任务的出发者用户

  HOME:家目录为/

  run-parts是一个脚本,在/usr/bin/run-parts,作用是执行一个目录下的所有脚本/程序。

  run-parts /etc/cron.hourly执行目录/etc/cron.hourly/之下的所有脚本/程序.

  run-parts下面就是运行的命令

  第一行的意思是:每天开机65分钟后就检查cron.daily文件是否被执行了,如果今天没有被执行就执行他

  第二行的意思是:每隔7天开机后70分钟检查cron.weekly文件是否被执行了,如果一周内没有被执行就执行他

  和at差不多,就是/etc/cron.deny这个配置文件来控制, 同时写入allow 及deny, 允许.以上就是Linux计划任务

转载于:https://www.cnblogs.com/lpyan/p/5651564.html

相关文章:

  • Anaconda + eclipse + pydev 开发,
  • C语言strchr()函数:查找某字符在字符串中首次出现的位置
  • javaWeb开发中读取资源文件方法总结
  • 数据库关注
  • 向量夹角顺时针或逆时针,交叉口向左拐向右拐的问题
  • 上传自己写的cacti文档,由于都是图片,自己博客保存一份记录
  • 输入输出流类iostream常用函数解析
  • 自拟定端口号
  • es的写入过程
  • Kubernetes 集群的两种部署过程(daemon部署和容器化部署)以及glusterfs的应用!...
  • mysql常用的数据备份方案
  • Bitbucket Pipelines在Atlassian的Bitbucket云上提供持续交付功能
  • 下拉菜单的编辑
  • 【乐畅】工作积累 ---- 后台倒计时 ( 体力恢复功能 )
  • block防止循环引用的技巧
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Android组件 - 收藏集 - 掘金
  • CODING 缺陷管理功能正式开始公测
  • crontab执行失败的多种原因
  • JavaScript设计模式与开发实践系列之策略模式
  • JS基础之数据类型、对象、原型、原型链、继承
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • mysql中InnoDB引擎中页的概念
  • python docx文档转html页面
  • ReactNative开发常用的三方模块
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • vue2.0项目引入element-ui
  • 编写符合Python风格的对象
  • 第2章 网络文档
  • 缓存与缓冲
  • 理解在java “”i=i++;”所发生的事情
  • 无服务器化是企业 IT 架构的未来吗?
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • FaaS 的简单实践
  • postgresql行列转换函数
  • Spring Batch JSON 支持
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (02)vite环境变量配置
  • (52)只出现一次的数字III
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (Python第六天)文件处理
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (译) 函数式 JS #1:简介
  • .NET Core 版本不支持的问题
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NET企业级应用架构设计系列之开场白
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • @Transient注解
  • @基于大模型的旅游路线推荐方案
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例