Crontab基础使用
写在前面
crontab 命令需要 crond 服务支持。
crond 是 Linux 用来周期/定时执行某个任务或处理某些事件的守护进程,类似 Windows 的计划任务。
crontab命令
命令常用参数:
| 参数 | 说明 |
|---|---|
| -u | 指定用户的 crontab 服务,例如 “-u demo” 表示 demo 用户的 crontab 服务 |
| -e | 编辑 crontab 文件。可指定用户,默认当前用户的 crontab 文件 |
| -l | 显示 crontab 文件内容,可指定用户,默认当前 |
| -r | 从 /var/spool/cron 删除 crontab 文件,可指定用户,默认当前 |
| -i | 在删除 crontab 文件时,给确认提示 |
# 查看 crond 服务状态
service crond status
# crontab 全局配置文件,可指定用户
cat /etc/crontab
# 用户自己的,crontab -e 命令配置文件
cat /var/spool/cron/root
# 用户自己的,用户目录 .crontab 文件
cat .crontab
# 配置 crontab 任务
crontab -e
执行“crontab -e”命令时,是用 Vim 打开crontab 配置文件,文件格式如下:
# crontab 配置说明,可参考:/etc/crontab
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
这个文件中是通过 5 个 * 来确定命令或任务的执行时间的,具体含义如下:
| 5个 * | 说明 | 范围 |
|---|---|---|
| 第一个 * | 一小时当中的第几分钟(minute) | 0~59 |
| 第二个 * | 一天当中的第几小时(hour) | 0~23 |
| 第三个 * | 一个月当中的第几天(day) | 1~31 |
| 第四个 * | 一年当中的第几个月(month) | 1~12 |
| 第五个 * | 一周当中的星期几(week) | 0~7,0和7都代表星期日 |
除了 * 之外的特殊常用符号:
| 特殊符号 | 含义 |
|---|---|
| *(星号) | 代表任何时间。比如:第一个 * 代表每分钟都执行一次的意思 |
| ,(逗号) | 代表不连续的时间。比如:0 8,12,16 * * * conmand, 代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令 |
| -(中杠) | 代表连续的时间范围。比如:0 5 * * 1-6 conmand,代表在周一到周六的凌晨 5 点 0 分执行命令 |
| /(正斜线) | 代表每隔多久执行一次。比如:*/10 * * * * conmand,代表每隔 10 分钟就执行一次命令 |
# 如:周天凌晨5分定时重启:
5 0 * * 7 /sbin/shutdown -r now
crond 黑白名单
白名单:/etc/cron.allow,黑名单:/etc/cron.deny。优先级:cron.allow > cron.deny
# 直接配置 user 即可
[root@localhost ~]# cat /etc/cron.deny
# user1
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
推荐文章: