Linux下crontab使用方法

Linux crontab是用来定期执行程序的命令,当安装完成操作系统之后,默认便会启动此任务调度命令,crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作,下面为大家分享一下Linux下crontab使用方法。

要执行周期性任务,要保证服务运行。服务名为crond;service crond start ; systemctl start crond;

配置文件

/etc/crontab

cron的日志文件

cat /var/log/cron

任务调度的分类

Linux下的任务调度分为两类,系统任务调度和用户任务调度。

系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。

系统任务调度

通过编辑配置文件/etc/crontab,以下图的格式标明需要运行的时间即可。一行对应一个任务,格式如下图。

用户任务调度

在当前用户下使用命令crontab -e,会以当前用户的身份建立任务调度。与系统任务调度文件格式不同的是不需要指名以哪个用户的身份运行。

时间表示

指定值:指定具体的数字

范围值:* 表示每,每到这这个时间段执行一次任务。

离散取值:10 2,3,4 * * *;每天的2,3,4点的10分执行一次。(总共执行了3次)

连续范围: 10 2-10 * * *;每天的2点10分到10点10分分别执行(总共执行了8次)

步长范围:/3 * * ;每分钟内执行3次(即每20秒执行一次)

举例:

10 10 /6 * *;每6天的10点10分执行一次任务

日期与星期

10 10 1-10 * 0,6 #每个月的1-10号的10点10分,或者周六日的10点10分都执行

举例:

1 1 /6 * root echo “hello word ” ;每隔6天的1点1分执行一次任务。

1 1-10/3 * * * root echo “hello word”;在每天1-10点范围内每3小时内的第一分钟执行一次

创建周期性任务

crontab -e

* * * * * /bin/echo “date +\%F \%H:\%M:\%S

#命令要写绝对路径。除非标明变量

#如果在用户下新建crontab的话%需要转义

创建时的其他设置

创建周期性任务时,默认的编辑器为vi所以没有语法高亮。可以通过以下办法将默认编辑器修改为vim

#写入/etc/porfile.d 对所有用户生效

#写入~/bash_profile 对当前用户

export EDITOP=vim

创建任务的权限

允许指定用户创建任务

cat /etc/cron.deny #在文件内写入用户名,使其不能创建新任务,但已创建的依然会执行

拒绝指定用户创建任务

cat /etc/cron.allow #默认文件不存在

允许与拒绝优先级

如果allow文件存在,那么deny文件不生效。

如果allow为空,拒绝所有用户

如果allow、deny都不存在,任何用户不能创建计划任务

实现毫秒、秒级别的周期性任务

利用usleep实现微妙级别的运行

usleep 1000000;1秒

usleep 1000;1毫秒

usleep 1;1微秒

利用循环体加sleep实现秒级别的。在每分钟要执行的任务中sleep20秒。

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/4483.html

(0)
晴川运维晴川运维
上一篇 2025年6月8日
下一篇 2025年6月8日

相关推荐

  • Vim常用的三种模式

    Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。 安装VIM …

    Linux系统 2025年6月8日
  • 讲解一下ES6 Promise用法

    所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。 ES6 规定,Promise对象是一个构造函数,用来生成Promise实例。…

    Linux系统 2025年6月13日
  • Linux下常用的剪贴板

    Linux下有哪些常用的剪贴板?本篇文章将为大家分享一下Linux下常用的剪贴板,有需要的小伙伴可以参考一下。 1.CopyQ 这种高级的剪贴板管理器适用于大多数平台上。它有编辑和…

    Linux系统 2025年6月10日
  • 详解Linux下端口映射

    端口映射器可实现端口映射功能,一个主要用途就是可以在局域网的网关上运行本程序,将网关服务器的某个端口映射为局域网中某台机器的某个端口,这样,局域网外部访问网关服务器的8081端口就…

    Linux系统 2025年6月21日
  • 简单介绍一下graphql

    graphql 是一种用于 API 的查询语言,对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,减少数据的冗余。 对比 Rest API…

    Linux系统 2025年6月8日
  • 快速上手Vue.js

    Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的。相比于Angular.js,Vue.js提供了更加简洁、更易于理解的API,使得我…

    Linux系统 2025年7月9日
  • Linux 系统中如何输入emoji

    emoji 是在 Unicode 字符空间里的有趣表情图,它们已经风靡于整个互联网。emoji 可以用来在社交媒体上表示自己的心情状态,也可以作为重要文件名的视觉标签,总之它们的各…

    Linux系统 2025年6月8日
  • 使用GitHub搭建专属的服务器

    现在固定公网IP资源稀缺,虽然说IPv6已经开始使用,但是用的人并不多,大部分用的都是IPv4,想要搞一个自己网站,首先就是需要一个固定的公网IP,但是每年却需要缴纳不少的mone…

    Linux系统 2025年6月8日
  • 可靠消息服务实现具体方案

    分布式事务往往是服务化的痛点,很多场景通过业务避免了分布式事务,但是还是存在一些场景必须依赖分布式事务,下面来讲讲如何处理分布式事务 一 常用解决方案 分布式事物解决方式有很多,网…

    Linux系统 2025年7月8日
  • 分享一下git使用小技巧

    Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放…

    Linux系统 2025年6月20日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注