• Linux 定时执行shell脚本命令之crontab


    crontab可以在指定的时间执行一个shell脚本以及执行一系列Linux命令

    例如:服务器管理员定时备份数据库数据、日志等

    详解:

    常用命令:

    crontab –e     //修改 crontab 文件,如果文件不存在会自动创建。 
    crontab –l      //显示 crontab 文件。 
    crontab -r      //删除 crontab 文件。
    crontab -ir     //删除 crontab 文件前提醒用户。
    
    service crond status     //查看crontab服务状态
    service crond start     //启动服务 
    service crond stop     //关闭服务 
    service crond restart     //重启服务 
    service crond reload     //重新载入配置

    基本格式 :

    *  *  *  *  *  command
    分 时  日  月  周  命令

    第1列表示分钟00~59 每分钟用*或者 */1表示

    第2列表示小时00~23(0表示0点)

    第3列表示日期01~31

    第4列表示月份01~12

    第5列标识号星期0~6(0表示星期天)

    第6列要运行的命令

    部分举例:

    1、在 凌晨00:10运行

    10 0 * * * /home/swz/aa.sh

    2、每个工作日23:59都进行备份作业。

    59 23 * * 1,2,3,4,5 /home/swz/aa.sh   或者  59 23 * * 1-5 /home/swz/aa.sh

    3、每分钟运行一次命令

    */1 * * * * /home/swz/aa.sh

    4、每个月的1号 14:10 运行

    10 14 1 * * /home/swz/aa.sh

    5、每10分钟定时请求一个地址

    0 */10 * * * /usr/bin/curl http://www.aaa.com/index.php

    正确、错误日志的输出是否写入到文件方法:

    1.不输出任何内容(建议使用方法一)

    */1 * * * * /root/XXXX.sh >/dev/null 2>&1*/1 * * * * /root/XXXX.sh &>/dev/null    //&表示任何内容

    2.将正确和错误日志都输出到 /tmp/load.log

    */1 * * * * /root/XXXX.sh > /tmp/load.log 2>&1

    3.只输出正确日志到 /tmp/load.log

    */1 * * * * /root/XXXX.sh > /tmp/load.log*/1 * * * * /root/XXXX.sh 1> /tmp/load.log    //1可以省略

    4.只输出错误日志到 /tmp/load.log

    */1 * * * * /root/XXXX.sh 2> /tmp/load.log

    部分解释:

    /dev/null 代表空设备文件
    > 代表重定向到哪里
    1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
    2 表示stderr标准错误
    & 表示等同于的意思,2>&1,表示2的输出重定向等同于1

    加锁脚本写法:

    */30 * * * * cd /home/homework/script && flock -xn dataSync.lock /home/homework/php/bin/php dataSync.php  >> dataSync.log 2>&1

    秒级脚本写法:

    #!/bin/bash
    step=10 #间隔的秒数,不能大于60
    for (( i = 0; i < 60; i=(i+step) )); do
        $(cd /home/homework/script && flock -xn dataSync.lock /home/homework/php/bin/php dataSync.php)
        sleep $step
    done
    exit 0
  • 相关阅读:
    05-java学习-循环结构
    04-java学习-选择结构
    03-java学习-基本数据类型-运算符-键盘接收用户输入
    A02-java学习-classpath配置-标识符-java变量类型
    A01-java学习环境准备
    20190215面试-C#操作外设-多线程-shocket
    装饰者模式
    状态模式
    DllImport学习
    网络编程(一)----基础知识、数据流套接字
  • 原文地址:https://www.cnblogs.com/wenzheshen/p/8432588.html
Copyright © 2020-2023  润新知