linux下的cron定时任务知识梳理

1 cron定时任务

1.1 cron介绍

  为什么需要cron定时任务?

  1)cron服务在安装完Linux系统后就默认就存在,主要用来定期执行命令或定期执行指定的应用程序;

  2)cron服务默认情况下每分钟会检查系统中是否有需要执行的定时任务,如果有,就会根据事先执行好的规则来执行这个任务;

  3)cron的守护进程服务:crond服务.注意的是,cron不擅长秒级的任务,如果要用秒级的任务,最好使用while语句的shell脚本.

[[email protected] ~]# crontab --help	#<==cron的语法及主要的参数如下
Usage:
 crontab [options] file
 crontab [options]
 crontab -n [hostname]
Options:
 -u <user>  define user          #<==指定用户,不指定默认就是当前用户
 -e         edit user‘s crontab		#<==编辑用户自己的定时任务文件
 -l         list user‘s crontab		#<==列出用户自己的定义的定时任务
 -r         delete user‘s crontab	#<==删除清空用户的定时任务计划(很少使用)
[[email protected] ~]# systemctl status crond.service	#<==centos7查看定时任务对应的服务是否开启
[[email protected] ~]# /etc/init.d/crond status			#<==centos6
crond (pid  1052) is running...
#注意的是,在命令行执行 crontab {l|e} 实质上就是在操作 /var/spool/cron/$USER 下对应用户自定义的定时任务配置文件
[[email protected] ~]# ll /var/spool/cron/$USER
-rw------- 1 root root 9 12月 9 21:38 /var/spool/cron/root
[[email protected] ~]# ll /var/spool/cron/
总用量 8
-rw------- 1 root root 9 12月 9 21:38 root
-rw------- 1 root root 9 12月 9 21:45 test

1.2 cron定时任务书写格式及各项含义

  定时任务记忆方法示意图(简要记忆方法就是"分时日月周"):

  定时任务中各个*号代表的含义(从左往右):  

自左往右的星号 含义 取值范围
第1个星号 * 分钟 00-59 , 0可以用单个0代替
第2个星号 * 小时 00-23
第3个星号 * 日/天 01-31
第4个星号 * 月份 01-12
第5个星号 * 星期几 0-7 ,0和7都是代表星期天

  cron语法格式中用到的特殊符号的含义:

特殊符号 含义
*
*代表任意时间,即每个时间位上的"每"的意思,如:

00 12 * * * cmd 的意思是每天的12点整都执行cmd任务

-
减号-代表分隔符,用来表示一个时间范围和区间段,如:

00 12-13 * * * cmd 代表每天的12,13的整点之间都执行cmd

,
逗号,代表分隔时间段,用来写不连续的时间段,如:

00 1,13,23 * * * cmd 代表每天的1,13,23点整都执行cmd

注意,逗号,和减号-可以混用,如:

00 1-3, 22-23 * * * cmd 代表1,2,3,22,23的5个整点都执行cmd

/n
n代表的是数字,即"每隔n个单位时间"的意思,如:

*/30 * * * * cmd 代表每隔30分钟都执行cmd

注意/n参数的位置,代表不同的分时日月周的每n个单位时间

1.3 定义任务cron小结

  书写定时任务时,注意以下几个方面:

  1)要为定时任务添加必要的注释,和写脚本或者代码都是一样.

  2)shell脚本和sh程序,须写全路径,如/bin/sh /server/scripts/a.sh .如果sh程序不写全路径,则须给脚本加 x 期限.

  3)定时任务后面须加 &>/dev/null ,防止邮件目录小文件过多.

  4)如果定时任务脚本是Tomcat环境下的,须在脚本中加入Tomcat的环境变量.

原文地址:https://www.cnblogs.com/blog-tim/p/12014023.html

时间: 2024-10-06 22:54:52

linux下的cron定时任务知识梳理的相关文章

Linux基础增强与辅助知识梳理

Linux基础增强与辅助知识梳理... ------------ Linux学习基础需要学习那些知识 学习Linux对于程序开发的好处 怎样开始学习Linux Linux的学习方法参考 Linux系统的由来 Linux为什么需要学习:有自己清晰的认识和坚持 开源可以修改源代码:使开源工具或是系统更加符合自己的需要,删除一下不需要的功能想做什么和能做什么Linux运行稳定,对网络有良好的支持,成本低,可以根据需要进行软件或是系统的修改裁剪,可以进行私人定制Linux:林妮科思,利尼克斯Linux系

Linux下的网络管理相关知识

Linux下的网络管理相关知识 linux下的网络管理工具,大致分成了三个系列,最古老的ifcfg系列.iproute2系列以及nm系列.我们会就三个命令进行分析和讲解,接着会讲一下更改IP地址和主机名等永久有效的方法. 一.ifcfg家族系列工具 ifconfig: 配置IP和掩码route: 配置路由netstat: 网络状态和统计数据的查看 1. ifconfig:用于查看和配置IP地址,立即生效,但不是永久有效. 使用方法: ifconfig [接口]ifconfig 接口 [aftyp

***linux下用cron定时执行任务的方法

名称 : crontab  使用权限 : 所有使用者 使用方式 : crontab file [-u user]-用指定的文件替代目前的crontab. crontab-[-u user]-用标准输入替代目前的crontab. crontab-1[user]-列出用户目前的crontab. crontab-e[user]-编辑用户目前的crontab. crontab-d[user]-删除用户目前的crontab. crontab-c dir- 指定crontab的目录. crontab文件的格

linux 下的 crontab 定时任务工具

以下内容转自:https://www.cnblogs.com/longjshz/p/5779215.html 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为"crontab",是"cron table"的简写. 一.cron服务 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业. servi

linux下C/C++头文件梳理,看完这篇再也不会搞糊涂头文件了!

一:前言 进行linux下C/C++服务端后台开发的都知道,需要跟各种头文件打交道. 比如使用printf函数则需要引用#include <stdio.h>,使用STL的map容器则要#include <map>,使用socket网络编程则要#include <sys/socket.h>, 那么我考考你uint32_t是在哪个头文件定义的呢?sleep函数又是在哪个头文件?open和close是在同一个头文件里吗? 是不是有点一时半会答不上来,有没有好的方法能梳理头文件

Linux下socket编程基本知识

本文档主要讲解了Linux下socket编程的一些基本知识,主要包括套接字和字节序的概念,以及一些常用的结构体和函数. 本文是在网易云课堂学习过程中的记录,这个老师讲得很不错,推荐大家围观. Linux网络编程 Linux网络编程|人工智能物联网 1.概念 1.1套接字(socket) Socket(套接字)是一种通讯机制,它包含一整套的调用接口和数据结构的定义,它给应用进程提供了使用如TCP/UDP等网络协议进行网络通讯的手段. Linux中的网络编程通过socket接口实现,socket既是

Linux下logrotate日志轮转操作梳理

对于Linux系统安全来说,日志文件是极其重要的工具.logrotate程序是一个日志文件管理工具.用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到"转储"作用.可以节省磁盘空间.下面就对logrotate日志轮转操作做一梳理记录: 1)配置文件介绍Linux系统默认安装logrotate工具,它默认的配置文件在:/etc/logrotate.conf/etc/logrotate.d/ logrotate.conf 才主要的配置文件,logrotate.d 是一个目录,该目

linux下shell编程基础知识

1.history    记录历史命令: 预设记录1000条命令,存储在用户家目录 .bash_history 文件中: !!     执行上一条命令 !n    n为数字,history里面显示的指令数字 !cat    执行最近一次以cat开头的命令 !$    上一条命令的最后一个参数 man builtin    可以查询系统内置的所有命令: 2.指令和文件名补全 Tab键    连续按2次列出所有的指令或文件名: 3.别名alias 自定义别名,把很长的经常使用的命令别名一个简单的命令

Linux下的Mongodb部署应用梳理

一.Mongodb简介 官网地址:http://www.mongodb.org/ MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种.MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.它在许多场景下可用于替代传统的关系型数据库或键/值存储方式.它是由C++语言编写的一个基于分布式文件存储的开源数据库系统,它的目的在于为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个介于关系型