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系统中用来定期执行命令/脚本或指定程序任务的一种 ...
随机推荐
- vue常见错误
错误集锦 错误一 错误二 原因是写太多的import,修改呈如下方式 错误三 源码如下 原因是没有在return后面添加值 应该为 return false
- CentOS7配置kdump
CentOS7配置kdump 简单生活,简单爱 2020-10-27 16:29:56 56 收藏 1 分类专栏: Linux实际开发总结 版权 文章目录 1.kdump简介 2.配置kdump ...
- CentOS 7 设置日期和时间 timedatectl
CentOS 7 设置日期和时间 在CentOS 6版本,时间设置有date.hwclock命令,从CentOS 7开始,使用了一个新的命令timedatectl. timedatectl [root ...
- sed -i '14s/yes/no/' tftp
修改tftp 内容 # cd /etc/xinetd.d/[root@localhost xinetd.d]# cp tftp tftp.bak[root@localhost xinetd.d]# c ...
- 使用LUKS加密你的磁盘
计算机数据的安全,保密性在现在的生活中显得越来越重要.随着数字化的时代的来临,越来越多的数据被数字化,特别是更多有关于我们隐私的数据在不断生成,甚至还有我们需要离线保存的密钥等.而且通常我们使用磁盘, ...
- Linux进阶之Git分布式版本控制系统篇
一.Git介绍 Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核 ...
- shell基础之99乘法表
方法一: 1 #!/bin/bash 2 for a in {1..9};do 3 for b in {1..9};do 4 c=`echo "$a*$b" |bc` 5 if [ ...
- Linux 使用命令发送邮件
1.关闭本机的sendmail服务或者postfix服务 #执行下面的命令,关闭sendmail和postfix服务 #sendmial [root@db-backup ~]# service sen ...
- docker中ubuntu源更新慢加速 换为国内源 Debian10源
本来以为是Ubuntu打包的镜像,换了阿里源老是报错100公钥不可用,结果发现是Debian的操作系统,换位Debian的操作系统打包的,换位Debian的源即可 #源如果使用错误也会报错,没有Deb ...
- 解决Caused by: org.apache.ibatis.exceptions.PersistenceException:
在mybatis-config核心配置文件中注册了xml以后出现了新的异常错误 Caused by: java.io.IOException: Could not find resource cn.d ...