一、计划任务概述

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、总览配置文件详解

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

2、/etc/crontab文件详解

SHELL=/bin/bash                  //当前登陆的shell,执行脚本的就是用/bin/bash来执行
PATH=/sbin:/bin:/usr/sbin:/usr/bin //命令的路径,执行的命令必须用绝对路径
MAILTO=root //邮件,发送到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 //执行的命令

2、/etc/cron.deny

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

3、/var/spool/cron/*

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

4、/var/log/cron

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

三、计划任务管理

1、计划任务管理

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

2、计划任务书写规范

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

四、计划任务编写实例

1、计划任务编写实例

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

2、注意事项

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

五、计划任务调试

1、计划任务调试准则

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

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. HTML(一):语法结构

    HTML语法规范 基本语法概述 HTML标签是由尖括号包围的关键词,例如<html>. 2HTML标签通常是成对出现的,例如<html>和</html> ,我们称为 ...

  2. Sql Server存储过程和游标的配合操作

    本段代码主要为了记录存储过程以及游标的使用,防止以后自己忘记 知识点:1.存储过程书写 2.游标书写 3.游标循环更新记录 create proc saletargetas declare @ower ...

  3. (十二)struts2的类型转换

    所有的MVC框架,都属于表现层的解决方案,都需要负责收集用户请求参数,并将请求参数传给应用的控制器组件. 这时问题出现了,所有的请求参数都是字符串类型数据,因此MVC框架必须具备将这些字符串请求参数转 ...

  4. Math类的random()方法

    Math类的random()方法 Math类的random()方法可以生成大于等于0.0.小于1.0的double型随机数. Math.random()方法语句基础上处理可获得多种类型.或任意范围的随 ...

  5. Go-30-main包

    main包 package main import ( "fmt" "kubeflow-tool/main/cmd" "os" ) func ...

  6. 解决mysql You can't specify target table for update in FROM clause错误

    mysql中You can't specify target table for update in FROM clause错误的意思是说,不能先select出同一表中的某些值,再update这个表( ...

  7. Netty 框架学习 —— 第一个 Netty 应用

    概述 在本文,我们将编写一个基于 Netty 实现的客户端和服务端应用程序,相信通过学习该示例,一定能更全面的理解 Netty API 该图展示的是多个客户端同时连接到一台服务器.客户端建立一个连接后 ...

  8. 织梦DedeCMS自定义表单限制IP24小时只能提交多少次

    方法1.打开plus/diy.php,找到一下代码, if(!is_array($diyform)) { showmsg('自定义表单不存在', '-1'); exit(); } 然后再在以下代码后面 ...

  9. Android so加固的简单脱壳

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78077603 Android应用的so库文件的加固一直存在,也比较常见,特地花时间 ...

  10. hdu4912 LCA+贪心

    题意:       给你一棵树和m条边,问你在这些边里面最多能够挑出多少条边,使得这些边之间不能相互交叉. 思路:      lca+贪心,首先对于给的每个条边,我们用lca求出他们的公共节点,然后在 ...