zoukankan      html  css  js  c++  java
  • Linux中的crontab命令用法

    Crontab

    在linux中,crontab的用来设置定期执行指定的命令,我们可以用它来指定一些需要重复的事情,Linux系统的用户只需将想要定期要执行的命令序列加到crontab文件中,操作系统即会按用户配置的时间执行这些命令序列。向crontab文件里添加指令之前,需要检查下crontab服务是否已启动和是否开机自动启动:

    【查看状态】

    Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的

    可以使用service crond status进行查看状态,下图是我在cenos中查看到的状态,可以看到是正在运行的。

     

    如果需要启动crond服务,可以使用 service crond start命令来进行服务的启动

    【设置开机自动启动】

    我们需要设置服务为开机自启动,一般是默认设置好的,我们可以使用ntsysv打开服务配置进行查看,如下图所示,前边有*代表已经选中,向下翻查看crond是否被选中。

    【命令格式】

    1.命令格式:

    crontab [-u user] file

    crontab [-u user] [ -e | -l | -r ]

    2.命令功能:

    通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常设合周期性的日志分析或数据备份等工作。

    3.命令参数:

    -u user:用来设定某个用户的crontab服务,例如,"-u ixdba"表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。

    file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。

    -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。

    -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。

    -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。

    -i:在删除用户的crontab文件时给确认提示。

    默认情况下,系统所有用户都可以使用crond服务。如需对crond服务的使用加限制,可以使用配置文件/etc/cron.allow和 /etc/cron.deny,望文生义,cron.allow是允许使用crond服务的用户清单,cron.deny里的用户则相反

     

    crontab 文件中命令格式如下:

    minute hour day-of-month month-of-year day-of-week commands

    即:"分 时 日 月 周 命令",共计6段,前5段都是时间,最后一段才是你要定期执行的指令。每段之间使用空格或者制表符分隔。

    来看一下前5段即日期和时间的取值范围

    1,分钟[00-59] 2,小时[00-23] 3,日[01-31] 4,月份[01-12]
    5,周[0-6] ;注意,这里的0表示周日

    上面这条指令里使用了特殊符号"*",代表当前段取值范围内的所有数字,如第3段上的"*"代表[01-31]日,第4段上的"*"代表[01-12]月。

    特殊符号除了"*"号还有"/"、"-"、",":

    / 代表"每"的意思,如"/5"表示每5个单位;
    - 用于表示一个范围,如"[1-10]"表示从1到10;
    , 用于表示若干离散的数字,如"5,15,25"

     

    编辑crontab文件

    例子;crontab –e

    之后直接编辑你想实现的操作,保存并退出。比如

    00 09 * * 3 echo "Hello new day!" >> /tmp/book

    我们此时再使用crontab –l就可以看到刚刚设置的东西。也可以在/var/spool/cron目录中查看到。文件名字就是用户名。

    为了看一下最终效果我先设置一个能看出效果的例子,如下:

    20 22 * * * echo "Good Night!" >> /tmp/book

    结果如下:可以看到,mybook文件中已经被写入了Good Night

  • 相关阅读:
    【.Net--资料】
    【系统Configmachine.config与自己的应用程序的App.config/Web.Config配置节点重复】解决方法
    【AutoMapper】实体类间自动实现映射关系,及其转换。
    【EntityFramwork--处理数据并发问题】
    【IOC--Common Service Locator】不依赖于某个具体的IoC
    Android学习——碎片Fragment的使用
    Android学习——利用RecyclerView编写聊天界面
    Android学习——控件ListView的使用
    Android学习——LinearLayout布局实现居中、左对齐、右对齐
    Android学习——Button填充颜色及实现圆角
  • 原文地址:https://www.cnblogs.com/MrListening/p/5858233.html
Copyright © 2011-2022 走看看