定时任务crond

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定时任务crond相关的知识,希望对你有一定的参考价值。


 

作者

归档:学习笔记

2016/6/27




rpm补充:

1. rpm -qf /sbin/ifconfig :查看ifconfig属于哪个软件包

rpm -ql :查看rpm软件包中有什么

rpm -e :删除某一个软件包

yum install 安装ifconfig属于的软件包

2. yum remove  卸载yum安装的包(非常危险)

 

本章正题:定时任务crond


1.1 定时任务

1.1.1 定时任务分类:

1. crond crontab】定时任务软件(对应软件包cronie)

2. atd  运行一次

3. anacron  7*24小时运行的服务器(很少用)

1.1.2 crond的分类

crond分类: 1. 系统定时任务

      2.用户定时任务


1. 系统的定时任务:6个文件:/etc/corn.hourly :每个小时运行这里面的内容

      /etc/cron.daily :每天运行这里面的内容

     /etc/cron.weekly :每周运行这里面的内容

    /etc/cron.month :每月运行这里面的内容

      /etc/cron.deny :定时任务的黑名单(不常用)

      /etc/crontab :系统定时任务的配置文件之一

日志的切割,日志轮询的作用:使一个日志文件不会过大,定时定点切割成多个文件。

如下图带日期显示的多个文件:

技术分享图片 

 

那么谁完成日志的切割:[[email protected] ~]# ll 系统定时任务+logrodate完成对日志的切割

 

2. 用户定时任务:

1)查看定时任务:crontab  -l

2)编辑定时任务:crontab  -e  

 使用crontab -e相当于vim编辑/var/spool/cron/root root 是用户名)

1.1.3 定时任务的查看

1. 查看定时任务 当前是否在运行

    方法一:ps -ef |grep crond

    方法二:/etc/init.d/crond status   (pid:进程号)

2. 查看定时任务 ,重启服务器之后是否会运行(是否开机自启动)

[[email protected] ~]# chkconfig |grep crond

 

1.1.4  定时任务crontab怎么使用

1. crontab -e  编辑定时任务

2. crontab -l 查看编辑好的定时任务

注:crontab的好处:1.有语法检查功能,格式对不对

          2.方便

1.1.5 定时任务相关的文件

1. var/spool/cron/:定时任务配置文件的所在目录

注:查看日志的命令:less moremore不能往上翻,到最后一行会自动退出)

            b向上翻页,空格或f 向下翻页.

2.  /var/log/cron 定时任务记录文件解释 : 时间--哪个用户的哪个程序运行的---运行的什么命令

3. /etc/cron.deny:定时任务黑名单

1.1.6 定时任务格式

注:最好在定时任务上面加一条注释,用来表示这条任务是干什么的

1. 什么时间 (分时日月周)

0-59  0-23  日期1-31  1-12  周几0-6 07表示周日)

 技术分享图片

 

2. 做什么事情(命令或脚本)

    注:命令写绝对路径

*/10 * * * * /usr/sbin/ntpdate ntp1.aliyun.com

注意:日期和星期不要同时加上数字

3.   基本格式(分时日月周)

       1)口诀:分时日月周

       2)定时任务常用符号

          *  :每分钟

          */10 :每隔10分钟

          -  :从哪来到哪去,连续范围,7-11

           :分割,或者的意思

      

1: 同步系统时间为例设置定时任务(*/10 :每隔10分钟

1)先测试绝对路径命令可否正常使用

[[email protected] ~]# /usr/sbin/ntpdate ntp1.aliyun.com

2)在写入定时任务,crontab -l 查看

[[email protected] ~]# crontab -l

*/10 * * * * /usr/sbin/ntpdate ntp1.aliyun.com

3)检查 1.看日志 tail -f  /var/log/cron 2.看文件内容有没有改变

[[email protected] ~]# tail -f /var/log/cron

2:每天晚上23点到上午7点 每一个小时运行CMD命令 (-  :从哪来到哪去,连续范围,23,00-07

00 23,00-07 * * * CMD

注:表达小时的时候,分钟上尽量别写*(给个固定时间)

00 23,00-07/1 * * *  (不能写23-07,转不过来)  

3:每分钟把自己的名字 追加kai.txt( :分割,或者的意思

1. [[email protected] ~]# /bin/echo "wangkai" >> /oldboy/oldboy.txt

2. [[email protected] ~]# crontab -l

* * * * * /bin/echo "wangkai" >> /oldboy/oldboy.txt

3. tail -f /vat/log/cron

Jan  3 11:31:01 georgekai CROND[17327]: (root) CMD (/bin/echo "wangkai" >> /oldboy/oldboy.txt)

注:时间--哪个用户的哪个程序运行的---运行的什么命令

1.1.7    定时任务书写流程:

1. 在命令行测试命令是否能用

[[email protected] /]# date +%F_%w

2. 把命令写到脚本中

[[email protected] /]# echo "date +%F_%w" >> /server/scripts/date.sh

注:>> 追加别写到脚本中(复否则太多),写到定时任务中

3. 测试脚本是否可以用

[[email protected] /]# sh /server/scripts/date.sh

注:用sh 执行脚本(sh =bash),如:sh  time.sh  

4. 写定时任务(1.先改成每分钟测试一下  2.在改成要求的时间)

[[email protected] /]# crontab -e

#time sh

* * * * * /bin/sh /server/scripts/date.sh >> /tmp/time.log

注:1. 定时任务中命令要用绝对路径

   2.定时任务中%号表示回车键的意思,需要撬棍转义

5. 检查结果(1.看日志  2.看命令是否执行成功)

1. 看日志

[[email protected] /]# tail -f /var/log/cron

Jan  3 12:35:01 georgekai CROND[18125]: (root) CMD (/bin/sh /server/scripts/da.sh >> /tmp/time.log)

2. 看是否执行成功

[[email protected] /]# cat /tmp/time.log

2018-01-03_3

注:往后改3秒时间 date -s "3sec"

总结:

1. 定时任务分类:用户和系统(日志轮询,监视)

2. 定时任务书写流程

3. 定时同步系统时间,追加名字或时间到文件

4. 定时任务9句箴言

 


以上是关于定时任务crond的主要内容,如果未能解决你的问题,请参考以下文章

crond定时任务详细分析

Linux系统定时任务crond那些事

定时任务crond及由其导致的inode满案例

Linux定时任务(crond)

linux 定时任务 crond 服务应用指南

Crond定时任务