Linux Crontab 介绍
Linux中的Crontab命令简介
Crontab命令列出、编辑、删除或提交cron作业。cron作业是由cron守护程序在预定的时间间隔内定期执行的命令。我们需要指定命令,即 crontab, 加上标志,即 -e, 来提交任何cron作业。crontab命令产生一个编辑会话,允许我们建立一个crontab文件。我们在这个文件中为所有cron工作创建条目。所有条目都必须采用对cron daemon来说很合适的格式。
crontab命令将条目复制到目录中,即/var/spool/cron/crontabs,并在我们完成建立条目并退出文件时,将其放在我们当前用户名的文件名内。我们也可以通过描述文件参数来建立一个crontab文件。该文件必须是cron daemon期望的形式,如果它存在的话。如果编辑器不存在,crontab命令就会调用它。如果EDITOR环境变量可用,该命令会调用它所描述的编辑器。否则,crontab命令将使用vi编辑器。
- 我们需要描述crontab命令,同时使用-l标志来列出crontab文件的内容。
- 我们可以使用-r标志来删除一个现有的文件。
- 用户名参数(可选)可以由crontab文件所有者或根用户应用,以验证、删除、列出或编辑定义用户的cron工作状态。
- 产生一条错误信息,如果用户名无效,程序将退出。
- 如果没有指定用户名参数(可选),则当前用户和根用户的crontab标志会出现。
- crontab是一组我们希望定期执行的命令。
- 命令的名称也被用来组织该列表。
crontab的全称是 “cron table” ,因为它利用工作调度器cron来运行任务;cron本身是以 “chronos “ 命名的。 Cron是系统的一个进程,它将根据一个固定的时间表自动为我们执行任务。这个时间表被称为crontab,它是用来改变该时间表的程序名称。
为什么我们要使用Cron工作
以下是在Linux中使用cron作业的一些原因。
- Cron作业用于自动化系统维护。
- Crontab是自动化Unix作业的一个完美选择。
- 定期清理缓存数据。
- 发出通知邮件,如密码过期邮件、新闻简报等。
- 清理和归档数据库表
- 删除旧的日志文件
- 帮助操作系统抓取数据库或日志文件的预定备份。
Cron 配置文件类型
以下是cron配置文件的类型。
- 用户Crontab
用户可以在crontab命令的帮助下安装他们的cron作业。所有用户都可以有自己的crontab文件,因此这些文件在crontabs /var/spool/cron/中;它们不倾向于被直接编辑。我们可以使用crontab命令来编辑设置我们的cron作业。
-
Linux/Unix系统的Crontab
它需要sudo权限,因为它用于关键工作和系统服务。它为系统crontab提供了作为用户执行命令的能力。
Crontab唯一字符串
我们可以使用crontab给出的八个唯一字符串。它不仅可以节省我们的时间,还可以增加可读性。
独特字符串 | 解释 |
---|---|
@reboot | 启动后,执行一次。 |
@yearly | 每年执行一次,即0 0 1 1 * |
@annually | 与@yearly相同。 |
@monthly | 每月执行一次,即0 0 1 * * |
@weekly | 每周执行一次,即,0 0 * * 0 |
@daily | 每天执行一次,即0 0 * * *。 |
@midnight | 它与@daily相同。 |
@hourly | 每小时执行一次,即,0 * * * * |
Crontab唯一字符串的例子
- 要按年安排操作
@yearly /scripts/greeting.sh
我们可以运行上面那个,来发送新年的问候。同时,它将在每年的第一分钟运行。
- 要安排操作按月运行
@monthly /scripts/cleanup.sh
我们可以在每个月开始的时候运行上面的那个来实现一些清理活动。我们同样可以使用其他crontab的唯一字符串来实现每小时、每天和每周的目标。
Cron目录
系统管理员可以利用一个全系统的cron时间表,它属于预定义的cron目录,如下图所示。
- /etc/cron.weekly
- /etc/cron.monthly
- /etc/cron.hourly
- /etc/cron.day
- /etc/cron.d
Cron在Linux下的使用
Linux的系统包包含一个有用的任务调度器,叫做crontab。Crontab很有名,因为它可以以root身份调度执行一个自动开发。因此,以root身份激活自动开发使系统的修改更加容易。我们只需要修改任务并等待它被重新启动。
Linux Crontab的格式
Linux crontab包含六个不同的字段。最初的五个字段指定了执行的日期和时间,最后一个字段用于命令执行。
Crontab的语法
[Minute] [hour] [Day_of_the_Month] [Day_of_the_Year] [Day_of_the_Week] [command]
如何修改/添加Crontab
- 用户可以使用以下命令修改他们的crontab作业。
$ crontab -u -e
这个命令打开了我们计算机系统的个人crontab配置,可以用我们默认的文本编辑器进行修改。
- 我们不需要重新启动我们的crontab,因为当我们使用下面的命令时,它将自动接收我们的修改。
$ crontab -l
- 我们可以使用下面的crontab命令来删除我们的crontab任务。
$ crontab -r
- 我们可以使用下面的crontab命令来更新或添加crontab中的作业。
$ crontab -e
- 我们可以使用下面的crontab命令来编辑其他用户的crontab。
$ crontab -u username -e
列表 Crontab
- 我们可以使用下面的crontab命令来查看用户的crontab条目。
$ crontab -l
- 我们可以使用下面的crontab命令来查看一个特定用户的crontab条目。
$ crontab -u username -l