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日

相关推荐

  • 详解Sass 变量

    Sass(Syntactically Awesome StyleSheets)是css的一个扩展开发工具,它允许你使用变量、条件语句等,使开发更简单可维护。 变量用于存储一些信息,…

    Linux系统 2025年6月10日
  • 快速上手Linux OpenSSL命令

    OpenSSL是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,但是,你不应该只将其作为一个库来使用,它还是一个多用途的、跨平台的密…

    Linux系统 2025年9月17日
  • 在 Linux 上使用 systemd 设置定时器

    学习使用 systemd 创建启动你的游戏服务器的定时器。 之前,我们看到了如何手动的、在开机与关机时、在启用某个设备时、在文件系统发生改变时 启用与禁用 systemd 服务。 …

    Linux系统 2025年6月8日
  • CoreOS具体安装方法

    CoreOS是一个基于Linux 内核的轻量级操作系统,为了计算机集群的基础设施建设而生,专注于自动化,轻松部署,安全,可靠,规模化,CoreOS作为Docker生态圈中的重要一员…

    Linux系统 2025年10月27日
  • 配置ssh-agent免密码认证具体步骤

    ssh-agent是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来…

    Linux系统 2025年6月4日
  • Elasticsearch中Head插件具体使用方法

    elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序,你可以通过插件把它集成到es,下面为大家分享一下Elas…

    Linux系统 2025年10月27日
  • Java随机数的坑你踩过吗

    随机数我们应该不陌生,业务中我们用它来生成验证码,或者对重复性要求不高的id,甚至我们还用它在年会上搞抽奖。今天我们来探讨一下这个东西。如果使用不当会引发一系列问题。 随机数我们应…

    Linux系统 2025年10月5日
  • Linux中安装 supervisor 具体步骤

    Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启,下面为大家分享一下在Linux…

    Linux系统 2025年6月9日
  • 使用unzip命令解压缩文件

    unzip解压命令的使用方法:【unzip test.zip】,表示将压缩文件test.zip解压到当前目录下。unzip命令用于解压缩由zip命令压缩的【.zip】压缩包。 安装…

    Linux系统 2025年10月27日
  • 通过Navicat访问Linux中安装的MySQL数据库具体方法

    本篇文章为大家分享一下通过Navicat访问Linux中安装的MySQL数据库具体方法,有需要的小伙伴可以参考一下。 1、安装好MySQL,检查是否正常登录 2、进入mysql数据…

    Linux系统 2025年6月28日

发表回复

登录后才能评论