一、计划任务概述

1、计划任务概述:

  • 计划任务分为:

    • 一次性任务
    • 周期性任务
  • 在Linux系统的计划任务服务crond 可以满足周期性执行任务的需求。 
  • crond进程每分钟会处璇一次计划任务,计划任务主要是做一些周期性的任务目前最主要的用途是定时备份数据。

2、计划任务示例:

  • Schedule one-time tasks With at.一 次性调度执行at
  • Schedule recurring jobs with cron.循环调度执行cron
  • Schedule recurring system jobs. 所有计划任务执行中的输出都会以邮件的方式发送给指定用户,除非重定向

3、计划任务分为以下两种情况:

  • 系统级别的定时任务:(由系统管理)

    • 清理系统缓存
    • 临时文件清理
    • 系统信息采集
    • 日志文件切割
  • 用户级别的定时任务:(用户管理)
    • 定时同步互联网时间
    • 定时备份系统配置文件
    • 定时备份数据库文件

二、crond配置文件详解

1、总览配置文件详解

  1. 文件 说明
  2. /etc/crontab //crontab配置文件
  3. /etc/cron.deny //该文件中所列用户不允许使用c rontab命令
  4. /var/spool/cron/*   //所有用户定时文件都存放此目录,文件以用户名命名
  5. /var/log/cron //定时任务执行后的日志文件,可用来回溯

2、/etc/crontab文件详解

  1. SHELL=/bin/bash //当前登陆的shell,执行脚本的就是用/bin/bash来执行
  2. PATH=/sbin:/bin:/usr/sbin:/usr/bin //命令的路径,执行的命令必须用绝对路径
  3. MAILTO=root //邮件,发送到root的邮件
  4.  
  5. # For details see man 4 crontabs
  6.  
  7. # Example of job definition:
  8. # .---------------- minute (0 - 59) //分钟
  9. # | .------------- hour (0 - 23) //小时
  10. # | | .---------- day of month (1 - 31) //天
  11. # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... //月
  12. # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat //周
  13. # | | | | |
  14. # * * * * * user-name command to be executed //执行的命令

2、/etc/cron.deny

计划任务默认是root用户,并且root用户不受该文件的约束,写入该文件的用户将无法写计划任务 

3、/var/spool/cron/*

该文件下的是以用户名命名的计划任务文件,文件写的是计划任务的所执行的

4、/var/log/cron

计划任务执行后的日志文件,在该日志文件里面所记录的日志可以恢复误删的计划任务文件

三、计划任务管理

1、计划任务管理

  1. 参数 含义 指定示例
  2. [root@wangqing ~]# crontab --help
  3. -e 编辑crontab文件内容 crontab -e
  4. -1 编辑crontab文件内容 crontab -e
  5. -r 删除crontab文件内容 crontab -r
  6. -u 管理其他用户的计划任务           rontab -u wangqing -l
  7. 注意: crontab {-l -e}实际上就是在操作/var/spool/cron/username

2、计划任务书写规范

  1. //1.为计划任务增加必要的注释
  2. [root@wangqing ~]# crontab -l
  3. ##time sync
  4. */5 * ***/usr/sbin/ntpdate t ime1.aliyun. com &>/dev/null
  5.  
  6. //2.规范计划任务执行脚本存放的路径/scripts/
  7. [root@wangqing ~]# crontab -1
  8. ##backup wwW to / backup
  9. 30 01 * * * /bin/sh /scripts/www_ backup.sh &>/dev/null
  10.  
  11. //3.执行shell脚本任务前加/ bin/sh,脚本结尾加&>/dev/null
  12. //调试好后应屏蔽debug输出信息,避免产生系统垃圾占用过多inode,如需输出日志,可重定向至 日志文件
  13. [root@wangqing ~]# crontab -l
  14. ####backup wwW to /backup
  15. 30 01 * * */bin/sh /scripts/www_ backup.sh &>/ tmp/ WWW_ backup. log

四、计划任务编写实例

1、计划任务编写实例

  1. [rootwangqing ~]# crontab -e
  2. #每天凌晨切割nginx日志
  3. 05 00***/bin/bash -x /scripts/cut_ _nginx.sh &> /scripts/log/nginxI log
  4.  
  5. #每天5点备份数据库
  6. 00 05 * * * /bin/bash -x /scripts/dump_ sql.sh &>/scripts/ log/mysql.log

2、注意事项

  1. //注意:
  2. 1.我们所有的crond服务是运行的程序。而crontab命令用户用来设置定时规则的命令。
  3. 2. crond服务是企业生产工作中常用的重要服务,at很少使用,可以忽略。
  4. 3.几乎每个服务器都会用到crond服务。

五、计划任务调试

1、计划任务调试准则

  1. 调整任务每分钟执行,检测是否是否正常,有些任务不要频繁执行.
  2. 调整系统时间然后在检测任务,生产不建议直接使用此方式
  3. 执行脚本,将脚本执行输出写入指定日志文件,观察日志内容是否正常
  4. 注意- -些任务命令带来的问题echowangqing" >>/tmp/test.log &>/dev/null
  5. 命令使用绝对路径,防止无法找到命令导致定时任务执行故障
  6. 查看/var/log/cron日志进行调试

2、计划任务调试建议

  1. //建议:
  2. 将需要定期执行的任务写入脚本中,建立/scripts目录统- -存 放脚本,脚本中命令必须使用绝对路径,手动执行脚本检测输出是否正常,然后将脚本加入计划任务测试,测试后无问题将脚本输出写入对应的日志文件中即可。

3、计划任务添加步骤:

  • 手动执行保留执行命令的正确结果;
  • 编写脚本:
    • 脚本需要统一路径/scripts
    • 脚本开头建议填写注释信息,包括执行时间、周期、任务
    • 脚本内容复制执行成功的命令至脚本文件中(减少每个环节出错几率)
    • 脚本内容尽可能的优化,使用- -些变量或使用简单的判断语句
    • 脚本执行的输出信息不要随意打印,可以重定向至其他位置保留或丢入黑洞
  • 执行脚本:
    • 使用bash执行,防止脚本没有增加执行权限(/bin/bash)
    • 执行命令以及脚本成功后并复制该命令
  • 编写计划任务:
    • 加上必要的注释信息,人、时间、任务
    • 设定计划任务执行的周期
    • 加入执行脚本的命令
  • 调试计划任务
    • 增加任务频率测试、调整系统时间测试(不能用于生产)
    • 检查环境变量问题、检查crond服务产生日志进行排查

Linux_计划任务理论概述的更多相关文章

  1. mamcached+(magent+keepalived高可用)搭建及理论概述

    目录 一.理论概述 工作流程 二.部署 环境 环境概述 部署 三.测试 四.总结 一.理论概述 Memcached服务器端与PHP-Memcache客户端安装配置_服务器应用_Linux公社-Linu ...

  2. CAP理论概述

    CAP理论 CAP原则,指在一个分布式系统中,Consistency(一致性).Availability(可用性).Partitiontolerance(分区容错性),三者不可同时拥有. 一致性(C) ...

  3. Linux_计划任务

    [Centos7.4] !!!测试环境我们首关闭防火墙和selinux:免得后面的测试会出现问题 [root@localhost ~]# systemctl stop firewalld [root@ ...

  4. Linux_软件包管理基本概述

    一.回去软件包的途径 1.系统发行版的光盘或官方的服务器镜像站 http://mirrors.aliyun.com        //阿里云镜像站 http://mirrors.sohu.com    ...

  5. Oracle RAC学习笔记01-集群理论

    Oracle RAC学习笔记01-集群理论 1.集群相关理论概述 2.Oracle Clusterware 3.Oracle RAC 原理 写在前面: 最近一直在看张晓明的大话Oracle RAC,真 ...

  6. 转载:分布式系统的CAP理论

    原文转载Hollis原创文章:http://www.hollischuang.com/archives/666 2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提 ...

  7. 理论经典:TCP协议的3次握手与4次挥手过程详解

    1.前言 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务.TCP提供一种面向连接的.可靠的字节流服务. 面向连接意味着两个使用TCP的应用(通常是一个客户和一 ...

  8. “ML学分计划”说明书

    计划的由来 我们是一群对机器学习感兴趣的小伙伴,对于神奇的机器学习经常有"一探究竟"的冲动,却因为孤身一人学习的寂寞.亦或繁忙考试工作之余的小小拖延症,而没有持续这份对知识的渴求和 ...

  9. 分布式系统的CAP理论

    一.CAP理论概述 一个分布式系统最多只能同时满足一致性(Consistency).可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项. 二.CAP ...

随机推荐

  1. 多线程安全的单例模式(使用判断nullptr和call_once两种方法)

    转载请注明: https://blog.csdn.net/Stephen___Qin/article/details/115583694 使用判断nullptr #include <thread ...

  2. Linux 查看GPU状态

    Linux 查看GPU状态 nvidia-smi nvidia-smi是NVIDIA自带的一个命令可以详细的展示显卡的运行状态. gpustat gpustat是github上开源的一个小工具,对于v ...

  3. Centos下搭建LAMP+PHP

    Centos下搭建LAMP+PHP LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写: Linux,操作系统 Apache,网页服务器 MariaDB或MySQL,数据库管 ...

  4. SpringBoot+Gradle构建多模块项目

    1 概述 Gradle由于构建速度比Maven快,且比Maven灵活,因此很多后端的应用都使用了Gradle进行构建,但一个问题是,Gradle的多模块项目比较难构建,再加上Gradle的更新非常快, ...

  5. Proxy.newProxyInstance源码探究

    JDK动态代理案例实现:实现 InvocationHandler 接口重写 invoke 方法,其中包含一个对象变量和提供一个包含对象的构造方法: public class MyInvocationH ...

  6. 一次错误使用 go-cache 导致出现的线上问题

    话说一个美滋滋的上午, 突然就出现大量报警, 接口大量请求都响应超时了. 排查过程 查看服务器的监控系统, CPU, 内存, 负载等指标正常 排查日志, 日志能够响应的结果也正常. request.l ...

  7. Dubbo学习笔记(一) 基础知识HelloWorld

    Dubbo是由阿里巴巴研发出的一款基于Java实现的RPC框架,现由Apache进行维护管理,笔记中使用zookeeper作为注册中心,dubbo+zookeeper环境安装教程:https://ww ...

  8. 软件篇-01-为Jetson TX2扫清科研的障碍

    建议用vryL,GUI界面,功能更全,支持订阅. https://github.com/ShieldQiQi/vryL​github.com 下面的内容不用看了,除非你更喜欢命令行界面.   To r ...

  9. input.focus()在IOS上失效的解决方法

    之前在iphone上做开发时遇到一个问题,在一般的正常浏览器上输入以下代码: 1 2 var apple = document.getElementById('abc'); apple.focus() ...

  10. LA3266田忌赛马

    题意:       田忌和齐王赛马,两个人每人n匹马,每个马都有自己的速度,赢一场得到200分,输一场失去200分,平则不得分,问田忌可能得到的最高得分是多少? 思路:       又是一个比较经典的 ...