Linux基础--定时任务

1.1.什么是定时任务

  • 设定某个日期或时间周期性执行指令。 闹钟–叫你起床
  • 定时任务–每天晚上12点把/etc目录备份一下

1.2.定时任务分类

  • crond(crontab) 定时任务软件 (软件包cronie)
  • atd 运行一次
  • anacron 非7*24小时运行的服务器
  • 如何检查软件是否安装?
命令含义
rpm -ivh安装rpm软件
rpm -qa查看软件是否安装
rpm -ql查看软件详细信息
rpm -qc查看软件的主配置文件
rpm -qf查看命令属于的安装包
rpm -e xxx(软件包名) --nodepth卸载软件((不会检查依赖,只卸载软件包))
yum remove禁止用这种方式卸载软件(会将依赖包一起卸载)

1.3 crond 分类:用户定时任务与系统定时任务

  • 1.3.1 系统的定时任务
/etc/cron.hourly/      系统定时任务每个小时运行这个目录里的内容
/etc/cron.daily/       系统定时任务每天运行这个目录里的内容
/etc/cron.weekly/      系统定时任务每周运行这个目录里的内容
/etc/cron.monthly/     系统定时任务每月运行这个目录里的内容
/etc/cron.deny         定时任务的黑名单
/etc/crontab           系统定时任务的配置文件之一

  • 1.3.2系统定时任务+logrotate命令完成对日志的日志切割/日志轮询
-d, –debug :debug模式,测试配置文件是否有错误。
-f, –force :强制转储文件。
-m, –mail=command :压缩日志后,发送日志到指定邮箱。
-s, –state=statefile :使用指定的状态文件。
-v, –verbose :显示转储过程。
每天轮询的日志配置文件
[root@oldboyedu scripts]# cat /etc/cron.daily/logrotate 
#!/bin/sh
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0


  • 1.3.3 用户定时任务
crontab -l (list)列表 查看用户的定时任务 cron table
crontab -e  (edit) 编辑用户的定时任务
/var/spool/cron/root  (root是用户名 root用户的定时任务)
一个命令(crontab)+一个目录(/var/spool/cron)

1.4 定时任务使用

  • 1.4.1 定时任务依赖的软件(服务)-是否能用
    1.查看当前是否正在运行
/etc/init.d/crond status
systemctl   status   crond
ps -ef|grep crond

2.查看crond是否开机自启动

chkconfig |grep crond  或者systemctl list-unit-files|grep crond
systemctl   status   crond

  • 1.4.2
    1.crontab命令使用
-e  edit 编辑当前用户的定时任务  相当于vi /var/spool/cron/root
-l  list显示当前用户的定时任务  相当于cat /var/spool/cron/root
为何使用crontab命令  
1.有语法检查功能 格式对不对  
2.方便

  • 1.4.3 定时任务相关的文件
/var/spool/cron/  	定时任务的配置文件所在的目录
/var/log/cron  		定时任务的日志文件  运行过程的一个记录
/etc/cron.deny	  哪些用户禁止使用定时任务 - 定时任务黑名单

在这里插入图片描述

  • 1.4.4 定时任务基本格式(分时日月周)
    口诀:什么时间做什么(然后再想下一次什么时候执行 什么时间,做什么事情 )
    在这里插入图片描述
1.定时任务书写例子
例一、每天的上午8点30分,来学校上车(go to school)
30  08   * * *  go to school
例二、每天晚上12点准时,回家自己开车(go to bed)
00 00 * * * go to bed
注意:星期几和日期不要同时加上  2020年2月28日 星期六
分时日月周 ,什么时间做什么
2.定时任务中常用符号
*(每)    *   *    *    *    *    命令
/n(每隔)   */10(每隔10分钟) *    *     *     *     命令
-(从哪里到哪里 ,每隔整点)  00 07-08  *  *   *     命令
,(分隔)
例一,每天的上午7点到上午11点 每2小时运行CMD命令
   *    07-11/2    *   *    *  CMD  (不规范)    表示整点的时候  每几个小时运行一次的时间分钟写上00
   00  07-11/2    *  *    *   CMD
例二,每天的17,19,20执行CMD命令
   00 17,19,20  *     *    *  CMD

  • 1.4.5 定时任务注意事项
注意事项:
表示整点 17点18点19点 00 17-19 * * *
表示半夜12点 00 00 * * *
每分钟
* * * * *
*/1 * * * *
表示每小时的第一分钟 
01 * * * *
  • 1.4.6 定时任务书写流程
    例 :每隔3分钟同步一下服务器时间
    • 第一个里程-命令行测试
      [root@petrus ~]# ntpdate ntp1.aliyun.com
    • 第二个里程:编写定时任务 crontab -e 和 vim /var/spool/cron/root 的区别 crontab -e 编写定时任务信息时,有语法检查功能
      [root@petrus ~]# crontab -e
      */3 * * * * ntpdate ntp1.aliyun.com
    • 第三个里程:检查定时任务是否配置成功
      1)检查定时任务是否已经配置上了
      2)检查定时任务是否有效(每分钟测试效果)
    • 第四个里程:j进行定时任务异常排查
      1)将定时任务拿出来在命令行执行检查
      2)看日志文件
      说明:定时任务里面执行命令的时候,不会调取PATH环境变量的信息,需要用命令的绝对路径
      一些内置命令在定时任务的时候,可以不用绝对路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值