zoukankan      html  css  js  c++  java
  • Linux下crontab详解

    1、crond介绍
    crond是Linux下的任务调度命令,让系统定期执行指定程序。crond命令每分钟都会检查是否有要执行的工作,若有要执行的程序便会自动执行。
    linux下任务调度工作主要分两类:
    1)系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
    2)个人执行的工作:某个用户定期要做的工作,自动备份网站程序

    2、crond服务启动、关闭
    service crond start //启动服务
    service crond stop //关闭服务
    service crond restart //重启服务
    service crond reload //重新载入配置

    3、在系统启动时自动启动服务
    1)创建一个脚本crond.restart,内容如下:
    service crond restart
    2)把创建的脚本crond.restart放到/etc/rc.d/init.d目录下,这样就会每次开机自动运行脚本crond.restart。

    4、crontab命令(用于设定cron服务)
    crontab -u 
    //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
    crontab -l //列出某个用户cron服务的详细内容
    crontab -r //删除没个用户的cron服务
    crontab -e //编辑某个用户的cron服务

    //查看root用户的cron设置
    crontab -u root -l

    //删除oracle用户的cron设置
    crontab -u oracle -r

    //编辑cron服务
    crontab -u root -e

    5、创建任务调度的2种方式
    1)用crontab -e命令创建
    用crontab -e命令创建的任务调度存于/var/spool/cron中,其文件名与用户名一致。格式如下:
     分      小时     日       月      星期     命令
    0-59   0-23   1-31   1-12     0-6     command     (取值范围,0表示周日一般一行对应一个任务)
    每个字段代表的含义如下:
    分       每个小时的第几分钟执行该任务
    小时    每天的第几个小时执行该任务
    日       每月的第几天执行该任务
    月       每年的第几个月执行该任务
    星期    每周的第几天执行该任务
    命令    指定要执行的程序

    "*"代表取值范围内的数字,
    "/"代表"每",
    "-"代表从某个数字到某个数字,
    ","分开几个离散的数字

    //10月~12月间,每周一、周三、周五,每隔2个小时,执行一次wwwbak.sh
    * */2 * 10-12 1,3,5 /home/tough/www/wwwbak.sh

    //每个月1-5号的每天22点,执行一次wwwbak.sh
    * 22 1-5 * * /home/tough/www/wwwbak.sh

    2)编辑/etc/crontab文件(文件格式同上)
    [root@toughhou ~]# more /etc/crontab 
    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=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

    注:cron服务每分钟不仅要读一次/var/spool/cron内的所有文件(个人执行的工作),还需要读一次/etc/crontab(系统执行的工作)。

    6、任务调度执行结果输出
    //10月~12月间,每周一、周三、周五,每隔2个小时,执行一次wwwbak.sh,并把执行结果输出到var/wwwbak.log文件中
    * */2 * 10-12 1,3,5 /home/tough/www/wwwbak.sh > /var/wwwbak.log 2 >&1
    注:2>&1 表示执行结果及错误信息。

     

  • 相关阅读:
    微信小程序Tab选项卡切换大集合
    微信小程序基于swiper组件的tab切换
    微信小程序基于scroll-view实现锚点定位
    商家 APP 如何接入新版支付宝支付,老版本商家如何升级
    JSON 接口如何实现 RSA 非对称加密与签名
    基于微信小程序的用户列表点赞功能
    tensorflow中常用学习率更新策略
    交叉熵损失函数和均方误差损失函数
    python中几个实用的文件操作
    特征选择
  • 原文地址:https://www.cnblogs.com/toughhou/p/3778779.html
Copyright © 2011-2022 走看看