Linux定时任务-cronie
1.cronie服务介绍
Linux crontab(cronie)是用来定期执行程序的命令。
当安装完成操作系统之后,默认就会启动此任务调度命令。
crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,如果想要立马执行需要重启服务。
而 linux 任务调度的工作主要分为以下两类:
(1)系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
(2)个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置。
2.软件列表
[root@shuai ~]# rpm -ql cronie
/etc/cron.d
/etc/cron.d/0hourly
/etc/cron.deny
/etc/pam.d/crond
/etc/sysconfig/crond
/usr/bin/crontab #命令目录
/usr/lib/systemd/system/crond.service
/usr/sbin/crond
/usr/share/doc/cronie-1.4.11
/usr/share/doc/cronie-1.4.11/AUTHORS
/usr/share/doc/cronie-1.4.11/COPYING
/usr/share/doc/cronie-1.4.11/ChangeLog
/usr/share/doc/cronie-1.4.11/INSTALL
/usr/share/doc/cronie-1.4.11/README
/usr/share/man/man1/crontab.1.gz
/usr/share/man/man5/crontab.5.gz
/usr/share/man/man8/cron.8.gz
/usr/share/man/man8/crond.8.gz
/var/spool/cron #定时任务存放目录
3.定时任务特殊目录
系统定时任务周期:每小时 控制定时任务目录:/etc/cron.hourly
系统定时任务周期:每一天 控制定时任务目录:/etc/cron.daily
系统定时任务周期:每一周 控制定时任务目录:/etc/cron.weekly
系统定时任务周期:每个月 控制定时任务目录:/etc/cron.monthly
4.编写定时任务
(1)用户定时任务编辑 crontab -e(edit)
crontab -e 编写定时任务
相当于 vi /var/spool/cron/ 定时任务配置文件保存目录
vi /var/spool/cron/root root用户设置的定时任务配置文件
vi /var/spool/cron/shuai shuai用户设置的定时任务配置文件
说明: 编辑配置定时任务信息
(2)用户定时任务查看 crontab -l(list)
说明: 列表查看定时任务信息
crontab -l
5.定时任务实际编写方法
定时任务环境准备
a.查看服务是否开启
[root@shuai /etc]# systemctl status crond.service #Centos7
[root@shuai /etc]# /etc/init.d/crond status #Centos6
b.编写定时任务的语法规范
[root@shuai ~]# cat /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

定时任务编写规范
写法:
01.用数值表示时间信息
00 02 * * * 备份文件 #每天的凌晨2点执行
02.利用特殊符号表示时间信息
* * * * * 备份文件
每分钟 每小时 每天 每月 每周
PS: 定时任务最短执行的周期为每分钟
*/5 */5 */5
每隔5分钟 每隔5小时 每隔5天
03.指定的时间范围
01-05 02 * * * #每天凌晨2点的01-05分都要执行
04.指定不连续的时间信息
00 14,20 * * * #每天的14点和20点都执行

c.实际编写定时任务
(1)每天凌晨两点备份/data目录到/backup
[root@shuai ~]# crontab -e
#每天凌晨两点备份/data目录到/backup
00 02 * * * cp -r /data /backup/ &>/dev/null
~
(2)定时任务排查方法
1.检查是否有定时任务配置文件
[root@shuai ~]# crontab -l
#每天凌晨两点备份/data目录到/backup 00 02 * * * cp -r /data /backup &>/dev/null
[root@shuai ~]# cat /var/spool/cron/root
#每天凌晨两点备份/data目录到/backup 00 02 * * * cp -r /data /backup &>/dev/null
2.检查定时任务日志文件
[root@shuai ~]# cat /var/log/cron
Jul 17 14:48:39 shuai crontab[2779]: (root) BEGIN EDIT (root)
Jul 17 14:51:11 shuai crontab[2779]: (root) REPLACE (root)
Jul 17 14:51:11 shuai crontab[2779]: (root) END EDIT (root)
Jul 17 14:53:54 shuai crontab[2791]: (root) LIST (root)
执行时间 主机名 编辑/执行定时任务 以什么用户编辑或执行定时任务/做了什么事
6.定时任务编写注意事项:(规范)
(1)编写定时任务要有注释说明
(2)编写定时任务路径信息尽量使用绝对路径
(3)编写定时任务命令需要采用绝对路径执行 /usr/sbin/useradd (which useradd)
命令执行成功条件:
useradd —> $PATH —> /sbin/useradd —> 命令执行成功
定时任务执行时,识别的$PATH信息只有: /usr/bin:/bin useradd命令目录为/usr/sbin/useradd
(4)编写定时任务时,可以将输出到屏幕上的信息保存到黑洞中,避免占用磁盘空间
* * * * * sh shuaish &>/dev/null
(5)编写定时任务, 尽量不要产生屏幕输出信息
例如:tar zcvf /backup/data.tar.gz /data 有信息输出 cd / && tar zcf /backup/data.tar.gz ./data 没有信息输出
(6)当需要多个命令完成一个定时任务需求时,可以利用脚本编写定时
[root@shuai ~]# vim backup.sh
[root@shuai ~]# crontab -e
# xxxxx
* * * * * /usr/bin/sh /server/scripts/backup.sh &>/dev/null
(7)说明: 定时任务中执行命令,如果产生输出到屏幕的信息,都会以邮件方式告知用户
/var/spool/mail/root 不断变大占用磁盘空间 占用的block空间
解决方法: 将邮件服务关闭
[root@shuai /backup]# systemctl stop postfix
发不出去邮件会产生草稿文件
/var/spool/postfix/maildrop/ 不断产生小文件占用磁盘空间 占用的inode空间
解决方法: 删除小文件
rm -f /var/spool/postfix/maildrop/*
systemctl start postfix
Linux定时任务-cronie的更多相关文章
- linux定时任务crond export变量问题
linux定时任务crond export变量问题 1)我写了一个重启resin的脚本,由于业务原因,需要定时在某一个时间重启下resin服务器,于是就在 crontab里配置了如下内容: 50 17 ...
- Linux 定时任务
200 ? "200px" : this.width)!important;} --> 介绍 本篇主要介绍Linux定时任务命令crontab的用法,crontab是定时任务 ...
- Linux 定时任务 Crontab命令 详解
前言 crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比 ...
- 如何让Linux定时任务crond以秒为单位执行(如每隔3秒)
需要用到Shell脚本每隔3秒钟去监控一个软件进程的运行状态,发现crond似乎只支持到分,不知道秒,怎么办呢? 第一种方法: 当然首先想到的是写一个触发的脚本,在触发脚本中使用死循环来解决此问题,如 ...
- 工作中linux定时任务的设置及相关配置
工作中会用到定时任务,来处理以前采集来的数据备份, 每周一凌晨4点执行一次 0 4 * * */1 find/data/templatecdr/oracle/dcndatabak/ -type ...
- 如何让linux定时任务crontab按秒执行
如何让linux定时任务crontab按秒执行? linux定时任务crontab最小执行时间单位为分钟如果想以秒为单位执行,应该如何设置呢?思路 正常情况是在crontab中直接定义要执行的任务,现 ...
- (转载)Linux定时任务cron配置
(转载)http://blog.csdn.net/jbgtwang/article/details/7995801 实现linux定时任务有:cron.anacron.at等,这里主要介绍cron服务 ...
- linux定时任务crontab的设置
linux定时任务crontab的设置http://www.blogjava.net/freeman1984/archive/2010/09/23/332715.html vi /etc/cronta ...
- Linux实战教学笔记11:linux定时任务
第十一节 linux定时任务 标签(空格分隔): Linux实战教学笔记 ---更多资料点我查看 1.1 定时任务Crond介绍 Crond是linux系统中用来定期执行命令/脚本或指定程序任务的一种 ...
随机推荐
- Django(32)自定义过滤器
前言 虽然DTL给我们内置了许多好用的过滤器.但是有些时候还是不能满足我们的需求.因此Django给我们提供了一个接口,可以让我们自定义过滤器,实现自己的需求. 自定义过滤器 首先在某个app中,创建 ...
- java基础——参数的应用
命令行传递参数(少用) 有时候,你希望运行一个程序时,在传递给它信息.这个时候,要靠 传递命令行 参数 给main()函数实现. package com.dong.method;public cla ...
- createrepo 建立本地yum源
linux使用createrepo制作本地yum源 目录 linux使用createrepo制作本地yum源 安装createrepo软件包 进入本地rpm包目录 执行完后可以看到生成的repod ...
- Rust 多态
Rust 多态 分发 多态的上下文中的方法解析过程被称为分发,调用该方法称为分发化,在支持多态的主流语言中,分发可以通过以下任意一种方式进行. 静态分发 当在编译期决定要调用的方法时,它被称为静态分发 ...
- SSH 远程控制
本文以 Ubuntu 20.04(客户端) 控制 Kali Linux 2020.2(服务端)为例 1.安装SSH(secure Shell) SSH分为客户端oppenssh-client和服务端o ...
- GCC参数详解-(转自:篱笆博客)
gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言, ...
- (数据科学学习手札123)Python+Dash快速web应用开发——部署发布篇
1 简介 这是我的系列教程Python+Dash快速web应用开发的第二十期,在上一期中我介绍了利用内网穿透的方式,将任何可以联网的电脑作为"服务器"向外临时发布你的Dash应用. ...
- SystemVerilog 语言部分(二)
接口interface: 既可以设计,也可以用来验证. 验证环境:interface使得连接变得简单不容易出错. interface可以定义端口,单双向信号,内控部使用initial always t ...
- BASE理论之思考
一.什么是BASE理论? BASE理论是对CAP中一致性和可用性权衡的结果,它的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性. BASE理论 ...
- ngx_lua模块
ngx_lua模块的原理: 1.每个worker(工作进程)创建一个Lua VM,worker内所有协程共享VM:2.将Nginx I/O原语封装后注入 Lua VM,允许Lua代码直接访问:3.每个 ...