Linux 入门详解 19

83 阅读2分钟

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

crontab 介绍

我们时常会有一些定期定时的任务,如周期性的清理一下 /tmp,周期性的去备份一次数据库,周期性的分析日志等等。而且有时候因为某些因素的限制,执行该任务的时间会很尴尬。本课程将带你很好的利用 Linux 系统的计划工具。

crontab 的使用

crontab 命令常见于 Unix 和类 Unix 的操作系统之中(Linux 就属于类 Unix 操作系统),用于设置周期性被执行的指令。

crontab 命令从输入设备读取指令,并将其存放于 crontab 文件中,以供之后读取和执行。通常,crontab 储存的指令被守护进程激活,crond 为其守护进程,crond 常常在后台运行,每一分钟会检查一次是否有预定的作业需要执行。

通过 crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell 脚本。时间间隔的单位可以是分钟、小时、日、月、周的任意组合。

我们通过下面一个命令来添加一个计划任务:

crontab -e

详细的格式可以使用上一节中学习到的 man 命令查看:

man crontab

执行crontab -e命令进入定时任务编辑界面,操作过程按照vim编辑文件的过程,每行为一个定时任务,保存之后,定时任务设置成功。

  • 任务格式
***** 执行的任务

例如:

* * * * * date >> /root/2.txt * * * * * date >> /root/4.txt

拓展

每个用户使用 crontab -e 添加计划任务,都会在 /var/spool/cron/crontabs 中添加一个该用户自己的任务文档,这样目的是为了隔离。

如果是系统级别的定时任务,需要 root 权限执行的任务应该怎么处理?

只需要使用 sudo 编辑 /etc/crontab 文件就可以。

cron 服务监测时间最小单位是分钟,所以 cron 会每分钟去读取一次 /etc/crontab 与 /var/spool/cron/crontabs 里面的內容。