zoukankan      html  css  js  c++  java
  • Linux 作业调度器 crond

    linux缺省会启动crond进程,crond进程不需要用户启动、关闭。 
    需要启动/关闭cron
    /sbin/service crond start   --启动服务
    /sbin/service crond stop   --关闭服务
    /sbin/service crond restart  --重启服务
    /sbin/service crond reload   --重新载入配置
    crond进程负责读取调度任务并执行,用户只需要将相应的调度脚本写入cron的调度配置文件中。 
    cron的调度文件
    有以下几个:
    crontab
    cron.d
    cron.daily
    cron.hourly
    cron.monthly
    cron.weekly
    如果用的任务不是以hourly monthly weekly方式执行,则可以将相应的crontab写入到crontab 或cron.d目录中。
     
    存放文件 
    /etc/cron.deny 文件列出所有不允许使用 crontab命令的用户
    /etc/cron.allow 文件所列的用户允许使用crontab命令
    /var/spool/cron  所有用户的crontab文件
    /var/spool/cron/crontabs 
     
    1、直接用crontab 命令编辑
    cron服务提供 crontab 命令来设定cron
    命令格式为:crontab -l|-r|-e|-u [username]
    参数含义:
    crontab -l 列出某个用户的cron服务内容
    crontab -e 编辑某个用户的cron 的内容
    crontab -r 移除某个用户的cron的所有内容
    crontab -u 设定某用户的cron服务
    命令如:
    root 查看自身的cron设置:crontab -u root -l
    删除用户test的cron设置:crontab -u test -r
     
    内容格式:* * * * *命令前面的五个*号,表示分,时,日,月,周
    如:代表意义   分钟   小时   日期   月份   周
            数字范围   0-59  0-23    1-31  1-12  0-7
     
    例如:#crontab -e59 23 1 5 * mail linuxing < /home/test.txt
    每在5月1日,23点59分就把/home/test.txt的内容作为邮件发给linuxing用户

    */5 * * * * /opt/test.sh    每5分钟就执行一次/opt/test.sh脚本
    0 3,6 * * * /usr/local/bin/test.sh    每在3点和6点整点都执行/usr/local/bin/test.sh命令
    0 8-12 * * * /root/backup.sh   8 点到 12 点之间的每小时的0分都执行/root/backup.sh
    0 */2 * * * echo "Have a break now." >> /tmp/test.txt     每两个小时
    0 23-7/28 * * * echo "Have a good dream:)" >> /tmp/test.txt  晚上11点到早上8点之间每两个小时,早上八点 
    0 11 4 * 1-3 command line    每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 
    0 4 1 1 * command line     1月1日早上4点
    01 6 * * * find /home/mysql/databack/* -mtime 30 -print|xargs rm -rf  定时清除 数据库备份

     

    2、编辑/etc/crontab 文件配置cron

     cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。

    此文件的文件格式是:

      SHELL=/bin/bash
      PATH=/sbin:/bin:/usr/sbin:/usr/bin
      MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
      HOME=/ //使用者运行的路径,这里是根目录
      # run-parts
      01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
      02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
      22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
      42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本

      大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。

    典型例子:

    定时备份mysql 数据库

    1、crontab -e

    2、01 3 * * * /home/backmysql

    3、vim /home/backmysql

    #!/bin/sh
    
    rq=`date +%Y%m%d`
    
    mysqldump -uroot -p123456 teatop_db --skip-lock-tables >/mysqldata/databack/mysql$rq.sql

    4、/sbin/service crond restart

     

    定时备份redis

    1、crontab -e

    2、01 3 * * * /home/redis.sh

    3、vim /home/redis.sh

    #!/bin/sh
    
    rq=`date +%Y%m%d`
    
    mkdir /mysqldata/redis/redis$rq
    
    cp -R /usr/redisdata/* /mysqldata/redis/redis$rq

    4、service crond restart

     

  • 相关阅读:
    Hadoop集群(三) Hbase搭建
    Hadoop集群(二) HDFS搭建
    Hadoop集群(一) Zookeeper搭建
    Redis Cluster 添加/删除 完整折腾步骤
    Redis Cluster在线迁移
    Hadoop分布式HA的安装部署
    Describe the difference between repeater, bridge and router.
    what is the “handover” and "soft handover" in mobile communication system?
    The main roles of LTE eNodeB.
    The architecture of LTE network.
  • 原文地址:https://www.cnblogs.com/xoray007/p/3643415.html
Copyright © 2011-2022 走看看