CentOS 7 cron、crontab和crontabs的用法
  DhmaJjT07YqF 2023年11月02日 30 0

介绍

cron是一个守护程序(后台进程),其作用是定期执行指定的命令。

crontab是一个程序,其作用是用于修改和删除一个列表,该列表是用户配置的定时命令,并且每个用户都可以有自己的crontab列表。除了使用crontab程序外,还可以手动去修改/etc/cron.d/目录下的cron作业。

crontabs是配置定时作业的一套规则。除普通配置外,crontabs还可以配置/etc/sysconfig/run-parts文件的随机化,随机化可以简单的理解为随机执行命令。随机化通常会用在共享网络中,在共享网络中,如果配置多个cron作业,可能会影响到服务器网络流量。

原理

CentOS默认会启动cron服务,这个是怎么启动的,暂时没找到相关资料。

在cron服务启动后,会去搜索/var/spool/cron目录下的文件,然后跟/etc/passwd文件中的用户名去对比,如果一致,则将同名文件中的内容加载到内存中。除此之外,还会搜索/etc/crontab和/etc/cron.d目录下的文件。

cron服务在执行定时的任务后,会将输出信息通过邮件发送到crontab的拥有者,也就是/var/mail目录下的同用户名文件。

crontab在修改后,不需要手动重启cron服务,因为cron服务会在每分钟检查spool目录和/etc/crontab的modtime(文件修改时间),如果modtime发生过变化,cron服务就检查所有的crontab文件modtime,然后重新加载所有已改变的文件。

限制

crontab可以配置cron.allow和cron.deny文件来限制用户使用。cron.allow文件中配置哪些用户能够访问,而cron.deny刚好相反,配置哪些用户不能访问。配置有三种情况:

  • 如果cron.allow文件存在,则必须在其文件中列出用户,该用户才能使用cron服务。
  • 如果cron.allow文件不存在但cron.deny文件存在,则列在cron.deny文件中的用户就不能再使用cron服务。
  • 如果这两个文件都没有,则仅超级用户root能够使用cron服务。

除此之外,还可以配置/etc/security/access.conf来控制使用cron服务的用户。

crontab语法

指令

描述

备注

-u

指定修改crontab的用户名

-l

列出当前用户的crontab

-r

移除当前用户的crontab

-e

编辑当前用户的crontab列表

使用的编辑器是由VISUAL或EDITOR环境变量指定

-i

指定删除crontab时需二次确认

此选项需跟-r一起使用,输入Y/y确认删除

-s

指定编辑之前是否将SELinux安全context字符串附加到crontab文件中

此选项需跟-e一起使用,会在编辑中默认添加SELinux上下文

-c

跟集群有关,待学习

此选项需跟-c一起使用

-n

跟集群有关,待学习

此选项需跟-c一起使用

crontabs规则

建议在配置crontabs规则时,将脚本的结果重定向到/dev/null中。这样做的好处就是避免随时间的增加,脚本执行次数过多,导致/var/spool/mail中的文件变得很大。 &> /dev/null

# .---------------- 第一个*代表分钟(0 - 59),每小时的X分执行
# |  .------------- 第二个*代表小时 (0 - 23),每天的第X小时执行
# |  |  .---------- 第三个*代表天数 (1 - 31),每月的第X天执行
# |  |  |  .------- 第四个*代表月份 (1 - 12),每年的第X月执行
# |  |  |  |  .---- 第五个*代表星期 (0 - 6),每周的星期X执行,0代表星期日
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

示例

说了这么多,不如实际使用一下。

我这里有个文件test.sh,里面就是简单的打印一句“执行成功”。接下来配置每分钟执行一次。

配置crontabs

[root@localhost ~]# crontab -e

* * * * * /root/test.sh

等待中。。。。。。

经过一分钟的等待后,再次回车刷新控制台就能看到新邮件了。

CentOS 7 cron、crontab和crontabs的用法_crontab

查看邮件文件,就能看到执行情况。

CentOS 7 cron、crontab和crontabs的用法_crontab_02

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  aqTyiIBgYlXS   2023年11月02日   38   0   0 ntpcrontablinux