• crontab 命令


    Linux crontab 是用来定期执行程序的命令。

    先来说下 crond。crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。默认为启动状态。

    服务相关命令

    /sbin/service crond start/stop/restart/reload  启动/关闭/重启/服务 

    /sbin/service crond reload  重新载入配置

    /sbin/service crond status  查看服务状态

    linux 任务调度的工作主要分为以下两类:

    系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。

    SHELL=/bin/bash  
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root
    HOME=/
    # For details see man 4 crontabs
    # Example of job definition:
    # .---------------- minute (0 - 59)
    # | .------------- hour (0 - 23)
    # | | .---------- day of month (1 - 31)
    # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
    # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # | | | | |
    # * * * * * user-name command to be executed

    第一行指定系统使用哪个 shell,这里是 bash。

    第二行指定系统执行命令的路径。

    第三行指定任务执行信息通过电子邮件发送给 root 用户。

    注意:当程序在你所指定的时间执行后,系统会发一封邮件给当前的用户,显示该程序执行的内容,若是你不希望收到这样的邮件,请在每一行空一格之后加上 > /dev/null 2>&1 即可

    第四行指定执行命令或脚本时使用的主目录。

    需要系统执行的任务可以写在这个文件中。

    个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置。

    所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。

    crontab 命令规则:

    每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段。

    在以上各个字段中,还可以使用以下特殊字符:

    "*"代表所有的取值范围内的数字,如月份字段为*,则表示1到12个月;

    "/"代表每一定时间间隔的意思,如分钟字段为*/10,表示每10分钟执行1次。

    "-"代表从某个区间范围,是闭区间。如“2-5”表示“2,3,4,5”,小时字段中0-23/2表示在0~23点范围内每2个小时执行一次。

    ","分散的数字(不一定连续),如1,2,3,4,7,9。

    例如:* 0-23/2 * 8 * command  标识8月的0~23点范围内每2个小时执行一次。

    注:由于各个地方每周第一天不一样,因此Sunday=0(第一天)或Sunday=7(最后1天)。

    crontab 相关命令

    crontab [-u user] file
    crontab [ -u user ] [ -i ] { -e | -l | -r }
    
    • -u user:用于设定某个用户的crontab服务;
    • file: file为命令文件名,表示将file作为crontab的任务列表文件并载入crontab;
    • -e:编辑某个用户的crontab文件内容,如不指定用户则表示当前用户;
    • -l:显示某个用户的crontab文件内容,如不指定用户则表示当前用户;
    • -r:从/var/spool/cron目录中删除某个用户的crontab文件。
    • -i:在删除用户的crontab文件时给确认提示。

    全局配置文件:

    crontab在/etc目录下面存在cron.hourly,cron.daily,cron.weekly,cron.monthly,cron.d五个目录和crontab,cron.deny二个文件。

    cron.daily是每天执行一次的job

    cron.weekly是每个星期执行一次的job

    cron.monthly是每月执行一次的job

    cron.hourly是每个小时执行一次的job

    cron.d是系统自动定期需要做的任务

    crontab是设定定时任务执行文件

    cron.deny文件就是用于控制不让哪些用户使用Crontab的功能(区分 cron.allow 文件)

    参考:https://www.linuxprobe.com/how-to-crontab.html

  • 相关阅读:
    POJ 1860 Currency Exchange【bellman_ford判断是否有正环——基础入门】
    POJ 3259 Wormholes【bellman_ford判断负环——基础入门题】
    hdu 4617 Weapon【异面直线距离——基础三维几何】
    POJ 3026 Borg Maze【BFS+最小生成树】
    POJ 1789 Truck History【最小生成树简单应用】
    POJ 2485 Highways【最小生成树最大权——简单模板】
    hdu 4627 The Unsolvable Problem【hdu2013多校3签到】
    POJ 1039 Pipe【经典线段与直线相交】
    POJ 1408 Fishnet【枚举+线段相交+叉积求面积】
    Rectangles
  • 原文地址:https://www.cnblogs.com/suojian/p/13723218.html
Copyright © 2020-2023  润新知