Linux下的crontab定时执行任务命令详解(参考:https://www.cnblogs.com/longjshz/p/5779215.html)

时间:2022-07-13 17:16:44

在Linux中,周期执行的任务一般由cron这个守护进程来处理[ps -ef | grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行以及调用时间。

cron的配置文件成为"crontab",是"cron table"的简写。

一 cron服务

crontab是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。

注意:ubuntu系统是 cron,Red Hat 和 Centos系统是 crond

service crond start      启动服务

service crond stop      关闭服务

service crond restart   重启服务

service crond reload   重新载入配置

service crond status    查看服务状态

二 cron在三个地方查找配置文件

1 /var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom创建的crontab任务对应的文件就是/var/spool/cron/tom。一般一个用户最多只有一个crontab文件。

三 /etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab

四 /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本

五 权限

crontab的权限问题到/var/adm/cron/下一看,文件cron.allow和cron.deny是否存在

1 如果两个文件都不存在,则只有root用户才能使用crontab命令。

2 如果cron.allow存在但是cron.deny不存在,则只有列在cron.allow文件里的用户才能使用crontab命令。

3 如果cron.allow不存在,cron.deny存在,则只有列在cron.deny文件里的用户不能使用crontab命令。

4 如果两个文件都存在,则在cron.allow中但不在cron.deny中的用户可以使用crontab。如果连个文件中都有同一个用户,则以cron.allow中是否有该用户为准,若cron.allow有,则可以使用crontab命令。

六 查询、添加、修改定时任务

crontab -l 查看当前的定时任务列表

crontab -e编辑定时任务配置,可以选择编辑器(有的linux系统会列举出几个,输入数字,选择vi编辑器即可),添加完保存。

七 举例

*/30 * * * * /home/roma/test/hello.sh >> /home/roma/test/output.log   每30分钟

* */2 * * * /home/roma/test/hello.sh >> /home/roma/test/output.log   每2小时

每30分钟执行一次hello.sh 脚本文件,并将结果输出到日志文件output.log中。

* * * * * /home/roma/.....

minute hour day-of-month month-of-year day-of-week commands