cron

Posted mclzy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cron相关的知识,希望对你有一定的参考价值。

1基本概述

要使用crontab定时器工具,必须要启动crond服务:

cron服务每分钟不仅要读一次 /var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用 crontab配置是针对某个
用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是: 1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存 2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置 crontab是UNIX系统下的定时任务触发器,其使用者的权限记载在下列两个文件中: 文件 含义 /etc/cron.deny 该文件中所列的用户不允许使用crontab命令 /etc/cron.allow 该文件中所列的用户允许使用crontab命令 /var/spool/cron/ 是所有用户的crontab文件

计划任务,是任务在约定的时间执行已经计划好的。这表面的意思。在Linux中,我们经常用到 crond 服完成这项工作。cron服务器可以根据配置文件约定的时间来执行特定的作务。比如我们可以在配置文件中约定每天上4点,对httpd 服务器重新启动,这就是一个计划任务;

下面我们先来说说cron;

cron启动后,它会读取它的所有配置文件(全局性配置文件/etc/crontab,以及每个用户的计划任务配置文件),然后cron会根据命令和执行时间来按时来调用度工作任务。

systemctl start crond.service  ##启动服务

systemctl reload crond.service  ##重新载入配置

你也可以将这个服务在系统启动的时候自动启动:

在/etc/rc.d/rc.local这个脚本的末尾加上:

systemctl start crond.service

2接口举例

现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:

crontab的语法,以备日后救急。先上张超给力的图

技术分享图片

1.直接用crontab命令编辑

cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

crontab -l //列出某个用户cron服务的详细内容

crontab -r //删除某个用户的cron服务

crontab -e //编辑某个用户的cron服务

比如说root查看自己的cron设置:crontab -u root -l

再例如,root想删除fred的cron设置:crontab -u fred -r

注意crontab是分用户的,以谁登录就会编辑到谁的crontab

-------------------------------- 如何查看crontab的日志记录 --------------------------------------------------------
昨天crontab中的同步任务没有执行,不知道是什么原因没有执行,貌似任务hang住了,想查询一下crontab到底问题出在哪里,或者hang在了什么地方。
 
1. linux
看 /var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察
 
2. unix
在 /var/spool/cron/tmp文件中,有croutXXX001864的tmp文件,tail 这些文件就可以看到正在执行的任务了。
 
3. mail任务
在 /var/spool/mail/root 文件中,有crontab执行日志的记录,用tail -f /var/spool/mail/root 即可查看最近的crontab执行情况。

 


以上是关于cron的主要内容,如果未能解决你的问题,请参考以下文章

在运行测试或通过 cron 运行代码时使 tqdm 的输出静音

如何使用 PHP 创建 cron 作业?

为什么我的python应用程序的cron作业总是返回301响应代码?

Drupal 7 hook_cron - 放在哪里

如何以编程方式设置 Cron 作业?

Cpanel Cron Job Php 全局变量