zoukankan      html  css  js  c++  java
  • Cron 定时任务命令-配置文件详解


    定时任务

    定时任务的作用


    1.系统级别的定时任务

    ​ 临时文件清理
    ​ 系统信息采集
    ​ 日志文件切割

    2.用户级别的定时任务

    ​ 定时向互联网同步时间
    ​ 定时备份系统配置文件
    ​ 定时备份数据库的数据

    计划任务服务


    # 定时任务,服务启动和停止
    # c6
    /etc/init.d/crond start
    /etc/init.d/rond/ stop
    
    # c7
    systemctl start crond
    systemctl stop crond
    
    

    相关配置文件


    [root@gong ~]# cat /etc/crontab 
    SHELL=/bin/bash				# 定时任务的shell
    PATH=/sbin:/bin:/usr/sbin:/usr/bin				# 环境变量
    MAILTO=root				# 执行错误之后,会给root用户发送mail
    
    # 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
    
    tail -f /var/log/cron  # 记录日志的位置
    

    写定时任务的时候需要注意:

    	- 写命令的时候需要使用绝对路径,因为配置文件路径的原因容易导致找不到命令。
    	- 复杂命令给或者多个命令尽量写到脚本中
    	- 定时任务中所有的输出内容全部放到/dev/null
    	- 一般周和日不会共存
    	- 编辑脚本的时候注意注释,方便查看作用
    

    FBI WARNING

    PATH 出现的目录,下面可执行文件,都可以不加路径直接执行。注意执行脚本的时候脚本执行权限的影响。



    定时任务的语法


    # 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
    
    *	 *	  *	    *	*	command
    分	时	日	月	周
    
    分 0-59
    时 0-23
    日 0-31
    月 1-12
    周 0-6
    
    # 每天凌晨2点执行ls命令
    0 2 * * * ls
    
    # 每个月1号执行凌晨两点执行ls
    0 2 1 * *  ls
    
    # 每月1号和15号12点都执行一次ls命令
    0 12 1,15 * * ls
    
    # 每月1号到15号12点都执行一次ls命令
    0 12 1-15 * * ls
    
    # 每年的2月14日凌晨2点,执行ls命令
    0 2 14 2 * ls
    
    # 每周日凌晨2点执行ls命令
    0 2 * * 7 ls
    
    #  每年6月份周五凌晨2点执行ls命令
    0 2 * 6 5 ls
    
    # 每个月的14号并且是周日,凌晨两点执行ls
    0 2 14 * 7 
    
    # 满足每年的2月14日时候是周日的时候执行ls
    0 2 14 2 7 ls
    
    # 在每天凌晨2点这个时段,每10分钟执行一次,在2:00这个时刻会执行。
    */10 2 * * * ls
    
    # 没分钟执行一次ls
    * * * * * ls
    */1 * * * * ls
    
    # 每年2月14日凌晨00点,执行ls
    0 0 14 2 * ls
    
    # 每5min执行一次,至保存的时候开始
    */5 * * * * ls
    
    # 每年的1月和5月和8月每天晚上凌晨2点执行ls
    00 2 1,5,8 * ls
    
    # 在每年1到7月和9-12月的每天凌晨2点执行ls
    00 02 1-7,9-12 * ls
    
    # 每个月的1-8号执行,凌晨2点执行ls
    00 02 1-8 * * 
    
    # 每个月的1号和10号和22号的凌晨4点45分执行ls命令   
    45 04 1,10,22 * * ls
    
    # 每个月的每2天的8点到11点的3分和15分执行ls命令   ---------跨月的时候
    3,15 8-11 */2 * * /bin/ls
    保存时间:2020年4月26日 11点35分
    
    4月28号,8点03分 和 8点15分,9点03分 和9点15分 , 10点03分和10点15分,11点03分和11点15分执行ls命令
    4月30号
    5月1号
    5月3号
    
    # 每天的00点-7点的每个小时和23点-00点的每个小时都执行ls命令
    0 23-7/1 * * * /bin/ls
    
    # 每周一到周五的晚上21点15分执行ls命令
    15 21 * * 1-5 /bin/ls
    
    
    

    相关命令-crontab


    -e			# edit 编辑配置文件/var/spool/cron/root
    -l			# 查看当前定时任务,在读取/var/spool/cron/root目录下的配置文件
    -r			# remove 删除定时任务
    -u			# 指定用户
    
    # 删除指定用户的定时任务
    [root@gong ~]# crontab -r -u root
    

    调试计划任务步骤


    1.命令行,测试是否能执行成功

    ​ sh -x 调试脚本

    2.加快定时的频率,测试定时任务是否能执行成
    3.修改时间

  • 相关阅读:
    ResNet & DenseNet
    82. 删除排序链表中的重复元素 II
    C++ Primer 笔记——多重继承与虚继承
    C++ Primer 笔记——命名空间
    C++ Primer 笔记——异常处理
    C++ Primer 笔记——模板与泛型编程
    C++ Primer 笔记——转发
    C++ Primer 笔记——理解std::move
    C++ Primer 笔记——OOP
    C++ Primer 笔记——重载运算
  • 原文地址:https://www.cnblogs.com/gshelldon/p/13280640.html
Copyright © 2011-2022 走看看