鉴于很多人对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://gpu.xuandashi.com/27532.html,转载请说明来源于:渲大师
声明:本站部分内容来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场!