• 在Linux中使用crontab


    查看已存在的任务

    查看crontab 输入命令:cat /etc/crontab

    在设定编辑之前都建议列出服务查看一下:crontab -l

     语法:

    **** user_name command to be executed
    • 前面五位是定时执行的时间周期 说明如下:

        第一个 * 表示分钟:取值范围 0-59

        第二个 * 表示小时:取值范围 0-23

        第三个 * 表示天数:取值范围 1-31

        第四个 * 表示月份:取值范围 1-12

        第五个 * 表示每周:取值范围 0-6

    • user_name 表示执行定时任务的用户 不指定默认当前用户
    • command to be executed 表示要执行的脚本语句。
    • 组合用法
    使用(-)可以划定范围,如:0 0-3 * * *  脚本        表示每天0-3点整执行脚本
    使用(,)可以枚举时间,如: 0,15,30,45 * * * * 脚本    表示每个小时的0分,15分,45分,30分会执行脚本
    使用(/)可以指定间隔,如:* */8 * * * 脚本         表示每8小时执行脚本
    组合用法,0-20/10 * * * * 脚本        表示在前20分钟内每隔10分钟执行脚本
    本人的一个定时脚本语句,5 20 * * * /usr/local/bin/kubectl rollout restart deployment identity-deployment 每天20点5分重启k3s服务
    • 示例:
    使用(-)可以划定范围:0 0-3 * * *  脚本        表示每天0-3点整执行脚本
    使用(,)可以枚举时间: 0,15,30,45 * * * * 脚本    表示每个小时的0分,15分,45分,30分会执行脚本
    使用(/)可以指定间隔:* */8 * * * 脚本         表示每8小时执行脚本
    组合用法:0-20/10 * * * * 脚本        表示在前20分钟内每隔10分钟执行脚本
    每隔5秒执行一次:*/5 * * * * ?
    每隔1分钟执行一次:0 */1 * * * ?
    每天23点执行一次:0 0 23 * * ?
    每天凌晨1点执行一次:0 0 1 * * ?
    每月1号凌晨1点执行一次:0 0 1 1 * ?
    每月最后一天23点执行一次:0 0 23 L * ?
    每周星期天凌晨1点实行一次:0 0 1 ? * L
    在26分、29分、33分执行一次:0 26,29,33 * * * ?
    每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?

    步骤:

      方法一:

    # touch crontab.txt
    # 将上面的cron job 复制到 crontab.txt 保存
    # 让crontab生效:crontab /xxx/crontab.txt
    # 重启crond

      方法二:

    # 直接  crontab -e  编辑crontab
    # 按 i 进入编辑
    # 将上面的cron job复制
    # Esc 退出
    # :wq 或 shift + zz
    # 重启crond

    常用命令:

    crontab -u //设定特定用户的定时服务
    crontab -l //列出当前用户定时服务内容
    crontab -r //删除当前用户的定时服务
    crontab -e //编辑当前用户的定时服务
    
    /sbin/service crond start //启动服务
    /sbin/service crond stop //关闭服务
    /sbin/service crond restart //重启服务
    /sbin/service crond reload //重新载入配置
    /sbin/service crond status //查看crond状态
    
    你也可以将这个服务在系统启动的时候自动启动:
    在/etc/rc.d/rc.local这个脚本的末尾加上:
    /sbin/service crond start
    
    查看cron执行日志:cat /var/log/cron
    • 如果最后带^M 则需要设置一下编码
        vi crontab.txt
        :set ff=unix

    注意:

    1.crontab.txt中的内容最后一行需要换行,因为crontab.txt中的内容是通过outputstream写入的

    2.java和linux系统级的区别

    # Java的Quartz任务(有秒)
    0 1 20 * * ? /usr/local/bin/kubectl rollout restart deployment basedata-deployment
    
    # linux系统的crontab(没有秒)
    1 20 * * * /usr/local/bin/kubectl rollout restart deployment basedata-deployment
  • 相关阅读:
    [java,2019-01-28] 枪手博弈,谁才是最后赢家
    [java,2019-01-25] 图片和二进制互转
    [java,2019-01-15] word转pdf
    [python,2018-06-29] 37%法则及其拓展解决恋爱问题
    [java,2018-06-26] 扑克牌抽牌求和问题
    [python,2018-06-25] 高德纳箭号表示法
    [java,2017-06-12] myEclipse双击无法打开文件
    OpenGL核心技术之法线贴图
    游戏中水的渲染技术系列一
    Unity 3D实现帧同步技术
  • 原文地址:https://www.cnblogs.com/JimmyThomas/p/16348282.html
Copyright © 2020-2023  润新知