linux crontab 用法入门教程

发布时间:2022-10-24 07:14 来源:群英 阅读:177 作者:群英 栏目: 主机资讯 欢迎投稿:712375056

 

  鉴于很多人对crontab 用法都不知道怎么用,而自己最近又在搞这个东西,所以研究了下crontab 用法。在这跟大家分享一下:
 
    crond和crontab
 
    cron是linux提供的一种服务器,用于定期执行shell命令。主要由两部分组成
 
    crond:cron服务的守护进程,用于定期调度

    crontab:cron提供的UI,用于编辑调度计划

    crontab的使用方法,大家可以学习一下,如下图:
 
    
 
    主要有三个选项:
 
    “-e”编辑:与vim类是,但是在保存退出时,他会帮你检查任务语法;

    “-l”列举所有任务;

    “-r”删除所有任务;

    目前介绍的是基于当前用户的crontab,系统级别的crontab见后面介绍。
 
    crontab 基本语法,如下图
 
    【调度频率】 shell命令
 
    给大家举个例子:

    

    可以看出,前面分别是分钟,小时,天,月和周,是shell命令。cron调度的最小频率为1分钟。上面这段调度的意思是:“每天10点30分,执行/some/path/do_something.sh”。
 
    以上命令中具体含义:

    
 
     “周”这一栏中0和7都代表周日
 
    每个月的一日无法由crontab直接支持,需要通过脚本判断,参考如下。
 
    命令是路径
 
    还有一些辅助的符号,可以借助他们写出更灵活的调度

    
    常见的例子
 
    59 23 11 27 * mail benben < /home/dmtsai/lover.txt // 每一年11月27日23分59 秒发一封情书给benben

    0 17 * * 5 mail all_members < weekily_report_notify // 每周五5点整,提醒所有组员发周报

    系统级的crontab
 
    系统级的crontab只有root权限有权编辑,该crontab是一个文件,位置为/etc/crontab,
 
    系统级别的crontab的语法与上面稍微不一样,需要在频率和命令之间添加命令执行者,如下所示,并且可以添加一些全局变量,在调度中使用:

    

    详细的系统级调度可以参考这里。
 
    这里需要强调/etx目录下几个与cron有关的目录和文件,如下所示

    

    cron.d:目录,此目录下以及子目录中所有符合调度语法的文件都会被执行

    cron.deny与cron.allow:此文件记录拒绝和允许执行的帐号,cron.allow的优先级大于cron.deny,建议一般只留一个可以

    cron.daily/hourly/monthly/weekly:这些目录里面全部都是脚本,分别在指定的时间里面执行。
 
    路径
 
    虽然crontab执行,可以理解为手动执行的定时触发。但是,执行过程中的路径仍然有所区别,很多情况下手动执行成功,但是crontab不成功,多半是由于采用了相对路径。所以,使用crontab时,尽量采用路径。

来源链接:https://www.qy.cn/zx/idc/763.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

免责声明:本站发布的内容(图片、视频和文字)以原创、来自本网站内容采集于网络互联网转载等其它媒体和分享为主,内容观点不代表本网站立场,如侵犯了原作者的版权,请告知一经查实,将立刻删除涉嫌侵权内容,联系我们QQ:712375056,同时欢迎投稿传递力量。