Linux基础知识之:crontab定时任务
5.3 定时(计划)任务crontab
5.3.1 定时任务的概念
后台运行,到了预定的时间就会自动执行的任务,前提是需要事先手动将计划任务设定好。
- 周期性任务执行
- 清空/tmp目录下的内容
- mysql数据库备份
- 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]
- 日期和周几不能同时写
- 定时任务要写绝对路径,命令的绝对路径和文件(脚本)的绝对路径
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相关的目录
定时任务默认存放路径
/var/spool/cron/
定时任务服务端的运行日志
/var/log/cron
定时任务crontab会在系统中生成大量的邮件日志,会占用大量的磁盘,关闭的步骤
# 查询服务是否存在
find / -type f -name 'post*.service'
查询服务是否存在
systemctl list-units | grep post
# 停止服务
systemctl stop postfix
# 查看服务运行状态
systemctl status postfix
# 禁止开机自启
systemctl disable postfix
Linux基础知识之:crontab定时任务的更多相关文章
- Linux基础知识梳理
Linux基础知识梳理 Linux内核最初只是由芬兰人林纳斯?托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的.Linux是一套免费使用和自由传播的类Unix操作系统,是 ...
- [转帖]linux基础知识大纲
linux基础知识大纲 https://blog.csdn.net/CSDN___LYY/article/details/80810403 1.Linux操作系统概述Linux操作系统的发展过程.创始 ...
- Linux基础知识入门
[Linux基础]Linux基础知识入门及常见命令. 前言:最近刚安装了Linux系统, 所以学了一些最基本的操作, 在这里把自己总结的笔记记录在这里. 1,V8:192.168.40.10V1: ...
- 运维之linux基础知识(一)
运维之linux基础知识(一) 1.GUI:Graphic User Interface 图形用户界面 2.CLI:Command line Interface 命令行界面 3 dll:Dynamic ...
- 运维之Linux基础知识(三)
运维之Linux基础知识(三) 1. 查看文本 cat tac more less head tail 1.1 cat 连接并显示文件 cat -n:在显示的时候,将每一行编号 -E:显示结束符$ - ...
- Linux基础知识第九讲,linux中的解压缩,以及软件安装命令
目录 Linux基础知识第九讲,linux中的解压缩,以及软件安装命令 一丶Linux Mac Windows下的压缩格式简介 2.压缩以及解压缩 3.linux中的软件安装以及卸载 1.apt进行安 ...
- Linux基础知识第八讲,系统相关操作命令
目录 Linux基础知识第八讲,系统相关操作命令 一丶简介命令 2.磁盘信息查看. 3.系统进程 Linux基础知识第八讲,系统相关操作命令 一丶简介命令 时间和日期 date cal 磁盘和目录空间 ...
- Linux基础知识第七讲,用户权限以及用户操作命令
目录 Linux基础知识第七讲,用户权限以及用户操作命令 一丶简介linux用户,用户权限,组的概念. 1.1 基本概念 1.2 组 1.3 ls命令查看权限. 二丶用户权限修改命令 1.chmod ...
- Linux基础知识第六讲,远程管理ssh操作
目录 Linux基础知识第六讲,远程管理ssh操作 一丶什么是SSH 1.什么是SSH 2.了解域名跟端口 二丶SSH命令以及远程连接linux进行维护 1.ssh命令格式 2.scp远程终端拷贝文件 ...
- Linux基础知识第三讲,拷贝文件跟移动文件命令
目录 Linux基础知识第三讲,拷贝文件跟移动文件命令 一丶常用命令 1.tree命令常用选项 2.cp复制文件命令 3.mv 命令的使用 Linux基础知识第三讲,拷贝文件跟移动文件命令 一丶常用命 ...
随机推荐
- Qt编写的项目作品19-图片及视频TCP/UDP网络传输
一.功能特点 多线程收发图片数据和解析图片数据,不卡主界面. 同时支持TCP和UDP两种模式,封装了TCP模式以及UDP模式的客户端类和服务端类. 图片传输客户端同时支持发送到多个服务端,可以作为一个 ...
- Qt编写地图综合应用14-离线地图下载
一.前言 网上其实有很多各种各样的离线地图下载器,大部分都是要收费的,免费的要么是限制了下载的瓦片数量或者级别,要么是下载的瓦片图打上了水印,看起来很难看,由于经常需要用到离线地图,摆脱这个限制,特意 ...
- 安装opencv_contrib-3.4.9, fatal error: opencv2/xfeatures2d.hpp: 没有那个文件或目录. 解决方法
1. 在Opencv的CmakeLists.txt 中加入以下include语句: INCLUDE_DIRECTORIES("/home/yourusername/Dependencies/ ...
- 『AotuHotKey』——一个小巧却高效的实用效率工具
[!note] 本来主要是想找一下「」和『』,然后这个方法直接可以找到大部分的特殊字符 通过输入法输出 『Ctr + shift + Z』进入搜狗输入法的『符号大全』 在『标点符号』项可以找到「」和『 ...
- functional-requirement
功能需求 基于GeoServer现有功能,以地图展示和服务管理为核心,实现一张图DEMO. 1. 地图展示 树状展示各种地图服务,并以地图的形式展示出来. 2. 服务管理 树状管理各种地图服务,包括添 ...
- 小程序IOS系统input设置maxlength时,输入到最后如果输入汉字的拼音长度超过限制会直接中断输入(bug bug)
我的解决办法:不在输入框限制长度,在提交表单的时候判断长度,欢迎大家有好的解决方法分享一下
- 老奶奶看了都会的WSL2连接USB设备教程!
老奶奶看了都会的WSL2-Ubuntu连接USB设备教程! 作者:SkyXZ CSDN:SkyXZ--CSDN博客 博客园:SkyXZ - 博客园 参考资料:微软官方文档连接 USB 设备 | Mic ...
- Redis的高可用?(主从、哨兵、集群)
高可用有两个含义:一是数据尽量不丢失,二是保证服务尽可能可用. AOF 和 RDB 数据持久化保证了数据尽量不丢失,那么多节点来保证服务尽可能提供服务. 一般在实际生产中,服务不会部署成单节点,主要是 ...
- python ModuleNotFoundError_ No module named 'xxx'的解决方案
本文主要针对的自己写的包无法正常import的情况,如果是第三方包的话正常来说没有问题. 第三方包 主要考虑没有安装对应的版本以及包名写错了等奇葩情况,具体可参考ModuleNotFoundError ...
- JavaScript 中的组合继承 :ES5 与 ES6 中最近似的写法
JavaScript 的继承写法较多,在此并不一一讨论,仅对最常用的组合式继承做一个说明: 组合式继承主要利用了原型链继承和构造函数继承. 一.ES5 中的写法 function Person(nam ...