zoukankan      html  css  js  c++  java
  • linux(centOS7)的基本操作(四) 定时任务——crontab

    概述

    对于Java开发人员,定时任务并不陌生,无非是让系统在特定时间执行特定的命令或程序。例如spring提供的@Scheduled注解、OpenSymphony提供的quartz框架,都可以实现定时任务。在操作系统这个层面,linux也提供了相应的解决方案——crontab命令。

    crontab命令的格式

    crontab [-e] [-l] [-r]

    后面的三个可选项必须选择一项,且只能选择一项。

    -e:编辑定时任务;

    -l:以列表形式显示当前所有的定时任务;

    -r:删除当前所有的定时任务。

    其中,crontab -e会弹出vi编辑器,可以以两种方式写入定时任务:

    1. cron表达式 + 命令

    2. cron表达式 + shell脚本文件

    这里的cron表达式跟https://www.cnblogs.com/dubhlinn/p/10740838.html一文提到的略有不同,最小单位为分钟,且不用问号(?),只能手动去避免日期和星期的冲突。

    直接编辑命令方式建立定时任务

    使用步骤

    1. 执行 crontab -e

    2. 在弹出的vi编辑器中写入:cron表达式、命令,中间以空格间隔

    3. 保存退出

    示例

    例如,每天午夜23点将当前目录下的内容追加到/home/dubhlinn/content.log文件中

    0 23 * * * ls -l >> /home/dubhlinn/content.log

    shell脚本保存命令方式建立定时任务

    使用步骤

    1. 创建shell脚本文件(.sh),在其中写入命令

    2. 对shell脚本文件赋予"执行"权限

    3. 执行 crontab -e

    4. 在弹出的编辑器中写入:cron表达式、shell脚本文件的绝对路径,中间以空格间隔

    5. 保存退出

    示例

    例如每隔15分钟,将当前日期时间追加到/home/dubhlinn/time.log文件中。

    首先,在家目录/home/dubhlinn下创建timer.sh文件,在其中写入:date >> /home/dubhlinn/time.log。

    然后,对刚创建的shell脚本文件,给所有者赋予执行权限:chmod u+x timer.sh。

    最后,执行crontab -e,并在编辑器中写入:*/15 * * * * /home/dubhlinn/timer.sh。

       

  • 相关阅读:
    LeetCode偶尔一题 —— 617. 合并二叉树
    《剑指offer》 —— 链表中倒数第k个节点
    《剑指offer》 —— 青蛙跳台阶问题
    《剑指offer》—— 二维数组中的查找
    《剑指offer》—— 替换空格
    《剑指offer》—— 合并两个排序的链表
    《剑指offer》—— 礼物的最大价值
    生成Nuget 源代码包来重用你的Asp.net MVC代码
    Pro ASP.Net Core MVC 6th 第四章
    Pro ASP.NET Core MVC 6th 第三章
  • 原文地址:https://www.cnblogs.com/dubhlinn/p/11094051.html
Copyright © 2011-2022 走看看