前言

linux系统有一个专门用来管理定时任务的进程cron,一般是设置成开机自启动的,通过添加任务可以让服务器定时执行某些任务。

cron介绍

linux系统有一个专门用来管理定时任务的进程cron,一般是设置成开机自启动的,可以通过以下命令查看

ps aux | grep cron

cron进程每隔一分钟会去读取/etc/crontab文件,/etc/cron.d/下的所有crontab文件,/var/spool/cron/下的所有的crontab文件;

  • /var/spool/cron/:改目录下存放系统的每个用户需要执行的crontab任务,该文件已用户的名字命令,是用户在提交cron任务后自动创建的,一个用户只有一个crontab文件;

  • /etc/crontab:这是一个crontab文件,里面存放整个系统级别的任务,一般是root用户操作,普通用户不要去修改这个文件;

  • /etc/cron.d/:该文件夹下一般是系统级别的用来管理其他定时任务的crontab文件;

  • /var/log/cron这是cron任务运行的日志文件;

所以如果是用户自己的任务会出现在/var/spool/cron/目录下;

# /etc/crontab文件

SHELL=/bin/bash  # 指定运行的shell
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root # 当/etc/crontab文件中的例行性命令发生错误时,会将错误信息传递给谁,一般改成用户账户,当发生错误时,错误信息发送到/var/spool/mail/下的用户名的文件 # For details see man 4 crontabs # 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

扩展

  • 通过ls /etc/ | grep cron命令查看会出现如下几个文件或文件夹:
anacrontab  # 这是系统级别的用来管理异步定时任务的文件
cron.d # 系统级别定时任务文件
cron.daily # 每天需要执行的cron任务目录
cron.deny # 定义不允许使用crontab命令的用户文件
cron.hourly # 每小时需要执行的cron任务目录
cron.monthly # 每个月需要执行的cron任务目录
crontab # 这是系统级别的用来管理定时任务的文件
cron.weekly # 每周需要执行的cron任务目录
# 另外还有cron.allow文件,定义允许使用crontab命令的用户,系统默认没有

cron任务的操作

cron工具有一套自己的操作命令可以对用户的cron任务进行自动化的管理。

cron服务的管理

service crond start    //启动cron进程
service crond stop //关闭cron进程
service crond restart //重启cron进程
service crond reload //重新载入配置+
service crond status //查看服务状态
  • 如果系统不识别service命令就使用/usr/sbin/crond start格式的命令;

crontab任务命令

crontab [-u username] [-l|-e|-r]
选项与参数:
-u :root权限才能进行这个任务,缺省时默认为当前的用户
-e :编辑用户的crontab文件,保存好后会自动提交
-l :查阅当前用户的crontab的工作内容
-r :移除当前用户所有的 crontab 的工作内容,若仅要移除一项,请去修改crontab文件

我们可以使用crontab -e直接编辑我们的定时任务,也可以先编辑一个自定义的creontab文件然后提交;

编辑自己的cron任务

  • 第一步:选一个文件夹,比如就在自己想要执行定时任务的应用如redis的安装文件,创建一个脚本文件:
touch test
# 授予该文件可执行权限
chmod +x test
# 编辑文件
vi test
  • cron任务的语法;
# 格式
minute hour day-of-month month-of-year day-of-week commands
minute:分钟,范围0--59;
hour:小时,范围0--23;
day-of-month:天,范围01-31;
month-of-year:月份,01-12;
day-of-week:周,范围0-6,(0表示Sunday); example: # 每隔五分钟
*/5 * * * * echo "aaaa"
# 每天18点
0 18 * * * echo "aaa"
# 执行目录下的文件
0 18 * * * root run-parts /etc/cron.d/ # 执行目录下的所有文件
  • 第二步:提交任务
crontab 文件名
  • 第三步:查看任务是否成功提交
crontab -l

注意:每次提交任务是覆盖原来的crontab的文件,所以需要添加更多的cron任务时,修改/var/spool/cron/下的文件。

linux之cron定时任务介绍的更多相关文章

  1. cron定时任务介绍

    什么是cron? Cron是linux系统中用来定期执行或指定程序任务的一种服务或软件.与它相关的有两个工具:crond 和 crontab.crond 就是 cron 在系统内的宿主程序,cront ...

  2. linux中Cron定时任务系统命令详解

    分类:Linux VPS教程 作者:阿川 发布时间:October 13, 2011 有很多同学在购买VPS之后,需要用到计划任务.但是又对计划任务不太了解,所以.今天我们的帮助中心主要是给大家提供一 ...

  3. linux ,cron定时任务 备份mysql数据库

    cron 定时任务执行备份脚本文件 backup.sh #!/bin/bash USER="root" PASSWORD="xxxxx" DATABASE=&q ...

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

    1 cron定时任务 1.1 cron介绍 为什么需要cron定时任务? 1)cron服务在安装完Linux系统后就默认就存在,主要用来定期执行命令或定期执行指定的应用程序; 2)cron服务默认情况 ...

  5. Go cron定时任务的用法

    cron是什么 cron的意思就是:计划任务,说白了就是定时任务.我和系统约个时间,你在几点几分几秒或者每隔几分钟跑一个任务(job),就那么简单. cron表达式 cron表达式是一个好东西,这个东 ...

  6. cron 定时任务

    cron 是linux下的定时任务: M H D m d cmd.  这是一种cron文件格式.   M: 分钟(0-59). H:小时(0-23). D:天(1-31). m: 月(1-12). d ...

  7. Linux下Crontab定时任务的使用教程 以及 无法执行定时任务的解决方案

     前言 本文学习思路:Linux的corntab定时任务的使用教程  --> 定时任务无效的解决方案  Linux的corntab定时任务的使用教程 1. 首先,输入命令 打开crontab定时 ...

  8. 【转】Linux之crontab定时任务命令

    1.  crontab命令概念 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使 ...

  9. Linux/Window之定时任务脚本编写

    Windows(Win 10) compmgmt.msc[Win+R] > 任务计划程序 > 任务计划程序库 > 创建基本任务 Linux(Ubuntu) 定时任务种类 实现linu ...

随机推荐

  1. c++ int 负数 补码 隐式类型转换

    unsigned y = ; ; cout << x + y << endl; 对于上述的结果为 这里面有一个负数的补码问题和不同类型之间的隐式类型转换问题 首先负数的表示方法 ...

  2. mysql表、函数等被锁住无响应的问题

    场景: 在对表或函数等进行操作的时候,如果出现无法响应的情况(排除外网的网络问题),此时极有可能被某一个线程锁定了(这是函数的情况,表的话可能是被某一个用户锁定了),锁定的原因一般都是死循环出不来,而 ...

  3. 2018 杭电多校1 - Distinct Values

    题目链接 Problem Description Chiaki has an array of n positive integers. You are told some facts about t ...

  4. Qt——树结点的搜索

    一.Qt中的树 平时我们经常使用树的结构来组织和展示数据,比如文件系统等—— 在Qt中,我们可以使用Qt提供的便捷的QTreeWidget类,利用该类的接口,轻松地将已有数据显示在树中. 除此之外,还 ...

  5. C# 连接Oracle数据库以及一些简单的操作

    拖了很久今天终于在博客园写了自己第一篇随笔: 话不多说,我们直接进入正题: 1.连接数据库 using (OracleConnection conn = new OracleConnection(&q ...

  6. [NOI.AC省选模拟赛3.31] 附耳而至 [平面图+最小割]

    题面 传送门 思路 其实就是很明显的平面图模型. 不咕咕咕的平面图学习笔记 用最左转线求出对偶图的点,以及原图中每个边两侧的点是谁 建立网络流图: 源点连接至每一个对偶图点,权值为这个区域的光明能量 ...

  7. STL使用记录

    1,map 对map实在不熟...赶紧记录一下用法吧. 后来再发现新的用法再补充吧 定义: map<int, int> m; 其中的int可以为自定义的任何类型. m[key值类型的变量] ...

  8. HDU1007:Quoit Design——题解

    http://acm.hdu.edu.cn/showproblem.php?pid=1007 题目大意:给n个点,求点对最短距离/2. —————————————————————— 平面分治裸题. 暂 ...

  9. [Leetcode] valid parentheses 有效括号对

    Given a string containing just the characters'(',')','{','}','['and']', determine if the input strin ...

  10. codeforces的dp专题

    1.(467C)http://codeforces.com/problemset/problem/467/C 题意:有一个长为n的序列,选取k个长度为m的子序列(子序列中不能有位置重复),求所取的k个 ...