5.3 定时(计划)任务crontab

5.3.1 定时任务的概念

后台运行,到了预定的时间就会自动执行的任务,前提是需要事先手动将计划任务设定好。

  1. 周期性任务执行
  2. 清空/tmp目录下的内容
  3. mysql数据库备份
  4. Redis数据备份
5.3.2 定时任务的作用

操作系统不可能24小时都有人操作,有些时候想在指定的时间点去执行任务(例如:每天凌晨2点去重新启动Apache)此时不可能真有人夜里2点去执行命令,这就可以交给定时任务程序去执行操作

5.3.3 crontab命令语法
语法:crontab [参数]
参数 说明
-l 列出指定用户的定时任务的列表
-e 编辑指定用户的定时任务列表,简单来说,定时任务就是一个文件
-u 指定的用户名,如果不指定,则表示当前用户
-r 删除指定用户的定时任务列表
5.3.4. crontab编辑语法
SHELL=/bin/bash  #定时任务,是帮我们去执行shell语句,因此必须加上bash解释器
PATH=/sbin:/bin:/usr/sbin:/usr/bin #crontab自己定义了PATH变量,写定时任务的命令必须是绝对路径不容易出错
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
分 时 日 月 周

取值范围(常识):

分:0-59

时:0-23

日:1~31

月:1~12、

周:0~7、0和7表示星期天

四个字符:

* : 表示取值范围中的每一个数字

- : 做连续区间表达式的,想要表示1~2,则可以写成1-7

/ :表示每多少,例如,每10分钟一次,则可以写成 */10

, : 表示多个取值,比如在1点,2点,6点执行,则可以写成1,2,6

[!WARNING]

  1. 日期和周几不能同时写
  2. 定时任务要写绝对路径,命令的绝对路径和文件(脚本)的绝对路径
5.4.5 定时任务的编写流程
1.crontab -e 编辑定时任务

2.写入正确语法,使用绝对路径

3.crontab -l 查看定时任务

4.进行验证定时任务

5.定时任务写入后会在定时任务日志中记录,/var/spool/cron/[用户名],以用户名区分定时任务

案例236. 每月1、10、22日的4:45重启network服务

45  4  1,10,22  *  *  /user/bin/systemctl restart network

案例237. 每周六、周日的1:10分重启network服务

10  13  *  *  6,7  /user/bin/systemctl restart network

案例238. 每天18:00至23:00之间每隔30分钟重启network服务

*/30  18-23  *  *  *  /user/bin/systemctl restart network

案例239. 每隔两天的上午8点到11点的第3,15分钟执行一次network重启

3,15  8-11  */2  *  *  /user/bin/systemctl restart network

案例240. 每天凌晨整点重启nginx服务

0  0  *  *  *  /user/bin/systemctl restart nginx

案例241. 每周4凌晨2点15分执行命令

15  2  *  *  4  /user/bin/systemctl restart network

案例242. 工作日的9点到18点内的每小时整点执行脚本

0  9-18  *  *  1-5

案例243. 每1分钟向文件里写入一句话“云计算运维工程师”,且实时监控文件内容变化

*  *  *  *  *  /usr/bin/echo "云计算运维工程师" > /dev/null

案例244. 每天凌晨2点30分,执行ntpdate命令同步times.aliyun.com,并sys同步到硬件时钟,且不输出任何信息

30  2  *  *  *  /usr/sbin/ntpdate -u ntp1.aliyun.com &> /dev/null
5.4.6 定时任务权限(黑白名单)

禁止那些用户创建定时任务

/etc/cron.deny  # 黑名单,哪些用户不能使用定时任务
/etc/cron.allow #白名单,哪些用户可以使用定时任务

[!CAUTION]

白名单的优先级高于黑名单

案例245. 将系统中的普通用户(UID>1000)的加入黑名单,如果想要那个用户使用crontab则加入白名单

[root@kylin-ren-class /]# awk -F: '$3>1000 {print $1}' /etc/passwd > /etc/cron.deny

[root@kylin-ren-class ~]# su - pengyu

[pengyu@kylin-ren-class ~]$ crontab -e
You (pengyu) are not allowed to use this program (crontab)
See crontab(1) for more information

案例246. 将pengyu这个普通用户加入白名单

[root@kylin-ren-class /]# echo pengyu > /etc/cron.allow

[pengyu@kylin-ren-class ~]$ crontab -e #可编辑
5.4.7 crontab相关的目录
  1. 定时任务默认存放路径

    /var/spool/cron/
  2. 定时任务服务端的运行日志

    /var/log/cron
  3. 定时任务crontab会在系统中生成大量的邮件日志,会占用大量的磁盘,关闭的步骤

    # 查询服务是否存在
    find / -type f -name 'post*.service'
    查询服务是否存在
    systemctl list-units | grep post
    # 停止服务
    systemctl stop postfix
    # 查看服务运行状态
    systemctl status postfix
    # 禁止开机自启
    systemctl disable postfix

Linux基础知识之:crontab定时任务的更多相关文章

  1. Linux基础知识梳理

    Linux基础知识梳理 Linux内核最初只是由芬兰人林纳斯?托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的.Linux是一套免费使用和自由传播的类Unix操作系统,是 ...

  2. [转帖]linux基础知识大纲

    linux基础知识大纲 https://blog.csdn.net/CSDN___LYY/article/details/80810403 1.Linux操作系统概述Linux操作系统的发展过程.创始 ...

  3. Linux基础知识入门

    [Linux基础]Linux基础知识入门及常见命令.   前言:最近刚安装了Linux系统, 所以学了一些最基本的操作, 在这里把自己总结的笔记记录在这里. 1,V8:192.168.40.10V1: ...

  4. 运维之linux基础知识(一)

    运维之linux基础知识(一) 1.GUI:Graphic User Interface 图形用户界面 2.CLI:Command line Interface 命令行界面 3 dll:Dynamic ...

  5. 运维之Linux基础知识(三)

    运维之Linux基础知识(三) 1. 查看文本 cat tac more less head tail 1.1 cat 连接并显示文件 cat -n:在显示的时候,将每一行编号 -E:显示结束符$ - ...

  6. Linux基础知识第九讲,linux中的解压缩,以及软件安装命令

    目录 Linux基础知识第九讲,linux中的解压缩,以及软件安装命令 一丶Linux Mac Windows下的压缩格式简介 2.压缩以及解压缩 3.linux中的软件安装以及卸载 1.apt进行安 ...

  7. Linux基础知识第八讲,系统相关操作命令

    目录 Linux基础知识第八讲,系统相关操作命令 一丶简介命令 2.磁盘信息查看. 3.系统进程 Linux基础知识第八讲,系统相关操作命令 一丶简介命令 时间和日期 date cal 磁盘和目录空间 ...

  8. Linux基础知识第七讲,用户权限以及用户操作命令

    目录 Linux基础知识第七讲,用户权限以及用户操作命令 一丶简介linux用户,用户权限,组的概念. 1.1 基本概念 1.2 组 1.3 ls命令查看权限. 二丶用户权限修改命令 1.chmod ...

  9. Linux基础知识第六讲,远程管理ssh操作

    目录 Linux基础知识第六讲,远程管理ssh操作 一丶什么是SSH 1.什么是SSH 2.了解域名跟端口 二丶SSH命令以及远程连接linux进行维护 1.ssh命令格式 2.scp远程终端拷贝文件 ...

  10. Linux基础知识第三讲,拷贝文件跟移动文件命令

    目录 Linux基础知识第三讲,拷贝文件跟移动文件命令 一丶常用命令 1.tree命令常用选项 2.cp复制文件命令 3.mv 命令的使用 Linux基础知识第三讲,拷贝文件跟移动文件命令 一丶常用命 ...

随机推荐

  1. Qt编写的项目作品19-图片及视频TCP/UDP网络传输

    一.功能特点 多线程收发图片数据和解析图片数据,不卡主界面. 同时支持TCP和UDP两种模式,封装了TCP模式以及UDP模式的客户端类和服务端类. 图片传输客户端同时支持发送到多个服务端,可以作为一个 ...

  2. Qt编写地图综合应用14-离线地图下载

    一.前言 网上其实有很多各种各样的离线地图下载器,大部分都是要收费的,免费的要么是限制了下载的瓦片数量或者级别,要么是下载的瓦片图打上了水印,看起来很难看,由于经常需要用到离线地图,摆脱这个限制,特意 ...

  3. 安装opencv_contrib-3.4.9, fatal error: opencv2/xfeatures2d.hpp: 没有那个文件或目录. 解决方法

    1. 在Opencv的CmakeLists.txt 中加入以下include语句: INCLUDE_DIRECTORIES("/home/yourusername/Dependencies/ ...

  4. 『AotuHotKey』——一个小巧却高效的实用效率工具

    [!note] 本来主要是想找一下「」和『』,然后这个方法直接可以找到大部分的特殊字符 通过输入法输出 『Ctr + shift + Z』进入搜狗输入法的『符号大全』 在『标点符号』项可以找到「」和『 ...

  5. functional-requirement

    功能需求 基于GeoServer现有功能,以地图展示和服务管理为核心,实现一张图DEMO. 1. 地图展示 树状展示各种地图服务,并以地图的形式展示出来. 2. 服务管理 树状管理各种地图服务,包括添 ...

  6. 小程序IOS系统input设置maxlength时,输入到最后如果输入汉字的拼音长度超过限制会直接中断输入(bug bug)

    我的解决办法:不在输入框限制长度,在提交表单的时候判断长度,欢迎大家有好的解决方法分享一下

  7. 老奶奶看了都会的WSL2连接USB设备教程!

    老奶奶看了都会的WSL2-Ubuntu连接USB设备教程! 作者:SkyXZ CSDN:SkyXZ--CSDN博客 博客园:SkyXZ - 博客园 参考资料:微软官方文档连接 USB 设备 | Mic ...

  8. Redis的高可用?(主从、哨兵、集群)

    高可用有两个含义:一是数据尽量不丢失,二是保证服务尽可能可用. AOF 和 RDB 数据持久化保证了数据尽量不丢失,那么多节点来保证服务尽可能提供服务. 一般在实际生产中,服务不会部署成单节点,主要是 ...

  9. python ModuleNotFoundError_ No module named 'xxx'的解决方案

    本文主要针对的自己写的包无法正常import的情况,如果是第三方包的话正常来说没有问题. 第三方包 主要考虑没有安装对应的版本以及包名写错了等奇葩情况,具体可参考ModuleNotFoundError ...

  10. JavaScript 中的组合继承 :ES5 与 ES6 中最近似的写法

    JavaScript 的继承写法较多,在此并不一一讨论,仅对最常用的组合式继承做一个说明: 组合式继承主要利用了原型链继承和构造函数继承. 一.ES5 中的写法 function Person(nam ...