crontab可以做什么?
定时执行的例行性工作:每隔一定的周期就需要执行一次
介绍
- Crontab 是一个在 Unix 和 Linux 操作系统上用于定时执行任务的工具。
- 它允许用户创建和管理计划任务,以便在特定的时间间隔或时间点自动运行命令或脚本。
- Crontab 是 cron table的缩写,cron指的是 Unix 系统中的一个后台进程,它用于执行预定的任务。
工作流程
- crontab 命令通常用于在 Linux 系统中设置定期执行的任务,并将这些任务存储在 crontab 文件中。 为了使用
- crontab 命令,系统需要依赖crond 服务的支持。通常情况下,在操作系统安装时,crond服务会被默认安装并自动启动。
- crond进程会每分钟定期检查crontab文件中的任务列表,以确定是否有需要执行的任务,如果有,它会自动执行这些任务。
- 当用户使用crontab命令新建任务计划之后,该项 jobs 就会被 /var/spool/cron/ 目录下,而且以用户账号来创建一个文件,每一项任务计划为一行。
- crond 检测的时间周期是 “分钟”, 每分钟会读取一次 /etc/crontab, 以及 /var/spool/cron 里面的记录并执行。
- crond 执行的每一项任务计划,都会被记录到 /var/log/cron 这个日志文件。
Crontab命令语法
crontab [-u user] file crontab [-u user] [ -e | -l | -r ]
- -u user用来设定某个用户的crontab服务。
- -file:file是命令文件的名字,表示将file做为crontab的任务列表 文件并载入crontab。 如果在命令行中没有指定这个文件,crontab命令将接受标准 输入(键盘)上键入的命令, 并将它们载入crontab。
- -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当 前用户的crontab文件。
- -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当 前用户的crontab文件内容。
- -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不 指定用户, 则默认删除当前用户的crontab文件。
- -i:在删除用户的crontab文件时给确认提示。 以下是可以用于指定时间的特殊符号:
- “*” 代表所有的取值范围内的数字,任何时刻都接 受。特别要注意!
- “*/n” 表示每n个单位间隔
- “-” 时间范围
- “,” 分隔的时段
Crontab计划任务的格式
分 | 时 | 天 | 月 | 周 | 用户 | 任务 |
---|---|---|---|---|---|---|
0-59 | 0-23 | 1-31 | 1-12 | 0-6 | who | ~ |