一、安装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";

最新文章

  1. Android--split()分割字符串特殊用法
  2. Mysql-学习笔记(==》建表修改一)
  3. Hibernate的generator属性之意义
  4. [Hibernate] - Criteria Select
  5. 在微软平台上运行 SAP 应用程序
  6. c语言统计字符数(判断a-z哪个字符出现次数最多)
  7. 【转】int && 非常量右值
  8. [进程管理]Load和CPU利用率是如何算出来的
  9. Linux 高性能服务器编程——高性能服务器程序框架
  10. Spring学习(二):Spring支持的5种Bean Scope
  11. windows CMD常用命令
  12. 无序hashset与hashmap让其有序
  13. 京东Alpha平台开发笔记系列(三)
  14. Git——取消merge状态
  15. 第十六节、特征描述符BRIEF(附源码)
  16. Redis慢查询日志学习功能
  17. unity3d 通过代码建立曲面
  18. java使用filter设置跨域访问
  19. Django商城项目笔记No.11用户部分-QQ登录1获取QQ登录网址
  20. Java项目经验——程序员成长的钥匙

热门文章

  1. logging、openpyxl、第三方模块下载
  2. spring boot 集成 rabbitmq 指南
  3. SpringBoot从Eclipse添加的Tomcat容器中启动
  4. linux篇-linux LAMP yum版安装
  5. SQL中常用的字符串LEFT函数和RIGHT函数详解!
  6. Fail2ban 配置详解 监禁配置(jail.conf)
  7. AMS 新闻视频广告的云原生容器化之路
  8. Unity-自定义事件派发器的两次尝试
  9. 关于spring整合mybatis
  10. 解决python无法打开谷歌浏览器问题