一、安装crontab服务并设置开机自启

yum install crontabs  (centos默认就会带,一般不需要安装)
systemctl enable crond (设为开机启动)
systemctl start crond(启动crond服务)
systemctl status crond (查看状态)

二、设置用户自定义定时任务

vim /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root # 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

  定义了MAILTO这个变量,那么crontab会将stdout的内容以邮件的形式发送到MAILTO定义的邮箱中。(MAILTO=myuser@163.com)

  分钟(0-59) 小时(0-23) 日(1-31) 月(11-12) 星期(0-6,0表示周日) 用户名 要执行的命令

示例:

vim /etc/crontab
# 每天,每5分钟执行一次 myshell.sh脚本
*/5 * * * root /data/myshell.sh # 每天凌晨二点,执行命令脚本,这里由于第一个的分钟没有设置,那么就会每天凌晨2点的每分钟都执行一次命令
* 2 * * * root /data/myshell.sh # 每天凌晨二点整执行一次命令脚本
0 2 * * * root /data/myshell.sh # 每天11点到13点之间,每10分钟执行一次命令脚本
*/10 11-13 * * * root /data/myshell.sh # 每小时的10-30分钟,每分钟执行一次命令脚本,共执行20次
10-30 * * * * root /data/myshell.sh # 每小时的10,30分钟,分别执行一次命令脚本,共执行2次
10,30 * * * * * root /data/myshell.sh # 周一到周五每天的9点到14点,每5min执行一次python脚本
*/5 9-14 * * 1-5 /root/gold.py # 周一到周五的15点到15点35分,每5min执行一次python脚本
0-35/5 15 * * 1-5 /root/gold.py

注意:
crond的计划任务并不会调用用户设置的环境变量,在执行计划任务时,用的时crond自己的环境变量,所以有些脚本手工执行是可以的,但是计划任务就不行,此时要么写脚本的绝对路径,要么将环境便俩个添加到/etc/crontab中;

遇到的问题:

# */5 9-14 * * 1-5 root /usr/local/python3/bin/python3 /root/gold.py
这种写法虽然脚本能执行成功,但是cron的执行日志中会有相关的报错,看着很不爽,于是就有了下面这种写法;
# */5 9-14 * * 1-5 /root/gold.py 这种写法有一个前提,需要指定执行脚本的解释器,也就是"#!/usr/local/python3/bin/python3";
不知道是不是我是root的缘故,当在cron中加入执行用户root时,脚本能执行成功,但是cron的执行日志中仍然会报错,于是就干脆取消了,不知道普通用户状态下会不会出现这种问题;(测试系统:CentOS 7.7)

三、保存生效

# 加载任务使其生效
crontab /etc/crontab (每一次的改动都需要执行,否则不生效) # 查看任务
crontab -l # 直接编辑
crontab -e (或者直接vim /etc/crontab)
注意:如果第一次写计划任务直接执行crontab -e,则计划任务文件是保存在/tmp目录下的,关机重启会失效;所以推荐"vim /etc/crontab";

CentOS 定时计划任务设置的更多相关文章

  1. centos crontab 计划任务 设置与查看

    centos 上 crontab 计划任务 ,这个版本解释的比较清晰 林涛 发表于:2017-4-27 11:11 分类:26点 标签:crontab,Linux,计划任务 36次 这个版本的cron ...

  2. linux 定时计划任务设置

    安装 crontabs服务并设置开机自启 yum install crontabs systemctl enable crond (设为开机启动) systemctl start crond(启动cr ...

  3. navicat for mysql 在win7下设置定时计划之导出数据处理

    navicat for mysql 在win7下设置定时计划之导出数据处理 博客分类: mysql navitcatmysql定时任务导出  前两篇记录了,navicat for mysql计划的入门 ...

  4. Oracle定时计划快速使用

    Oracle定时计划快速使用 前言: SQL Server中有相关的定时计划,可以直接打开sql server 的任务管理器进行配置,可以方便.快速实现定时执行相应任务.相应的Oracle也有对应的定 ...

  5. Quartz.net 定时计划使用

    新建解决方案和工程Quartz.net 使用Power Shell 命令 Install-Package Quartz 导入Quartz.net程序集 新建一个计划TestJob using Syst ...

  6. MySQL架构优化:定时计划任务与表分区

    转自: MySQL架构优化实战系列3:定时计划任务与表分区 - 今日头条(TouTiao.com)http://toutiao.com/a6304736482361049345/?tt_from=mo ...

  7. Windows定时计划执行Python

    先看下定时执行的py文件 #coding:gbk from selenium import webdriver import time,os driver = webdriver.PhantomJS( ...

  8. Linux定时计划(crontab)使用说明

    一.设置定时计划步骤 第一步,编缉计划文件:crontab -e 第二步,在文件中写入计划,格式如:minute hour day month week command.如0 8 * * * sh / ...

  9. 【Oracle】Windows定时计划每天备份数据库

    脚本 OracleBakEveryDay.bat @echo off echo ================================================ echo Window ...

随机推荐

  1. Idea之常用插件

    效率提升 Jrebel 热部署插件,修改代码编译就生效,节省大量重启服务时间.热部署支持修改方法代码,方法定义,类定义,接口定义(包括swagger文档),修改资源文件,修改mapper.xml(需配 ...

  2. 没想到吧!这个可可爱爱的游戏居然是用 ECharts 实现的!

    摘要:echarts 是一个很强大的图表库,除了我们常见的图表功能,还可以自定义图形,这个功能让我们可以很简单地在画布上绘制一些非常规的图形,基于此,我们来玩一些花哨的:做一个 Flappy Bird ...

  3. Tomcat配置安装

    1.tomcat是什么? 是由JAVA开发的开源且免费,主要是用于web服务器,是中间件.主要用于中小型企业 2.tomcat安装 安装jdk,可以rpm或者官网安装,安装完配置java环境变量,打开 ...

  4. 39. Combination Sum - LeetCode

    Question 39. Combination Sum Solution 分析:以candidates = [2,3,5], target=8来分析这个问题的实现,反向思考,用target 8减2, ...

  5. 好客租房3-React的基本使用

    2.1React的安装 安装命令:npm i react react-dom react 包是核心,提供创建元素,组件等功能 react-dom包提供DOM相关功能等 2.2React的使用 1引入r ...

  6. Border性质习题与证明

    KMP 第一次接触 \(border\) 都是先从 KMP 开始的吧. 思想在于先对于一个串自匹配以求出 fail 指针(也就是 border) 然后就可以在匹配其他串的时候非常自然的失配转移.在此顺 ...

  7. cuda在ubuntu的安装使用分享

    前言 之前给大家分享过opencv在jetson nano 2gb和ubuntu设备中使用并且展示了一些人脸识别等的小demo.但是对于图像处理,使用gpu加速是很常见 .(以下概念介绍内容来自百科和 ...

  8. 多路分支、for循环

    多路分支 多路分支也叫做switch语句,它的格式: switch (控制表达式){ case 条件: 输出....} switch 可以看成一种跳转,每当我们满足跳转就会跳转到响应的位置,接下我们写 ...

  9. 离线环境使用NuGet

    更新记录 本文迁移自Panda666原博客,原发布时间:2021年5月13日. 在Visual Studio中直接使用GUI的方式操作NuGet包非常的方便.如果喜欢命令行,也可以使用包管理控制台或者 ...

  10. Go写文件的权限 WriteFile(filename, data, 0644)?

    本文来自博客园,作者:阿伟的博客,转载请注明原文链接:https://www.cnblogs.com/cenjw/p/go-ioutil-writefile-perm.html 前言 go iouit ...