Linux crontab解析
日常的系统运行中,经常需要设置一些周期执行的任务,在LINUX/UNIX中,周期执行的任务一般由cron这个守护进程来处理。
一、crond服务
可以通过 ps-ef | grep cron 查看cron服务进程。
下面是手动操作cron服务的命令:
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看服务状态
二、系统管理员任务配置文件
/etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# 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
三、用户执行权限
通过cron.allow和cron.deny文件来控制用户权限,
cron.deny 表示不能使用crontab 命令的用户
cron.allow 表示能使用crontab的用户。
如果两个文件同时存在,那么cron.allow 优先。
如果两个文件都不存在,那么只有root用户可以使用crontab命令。
AIX 中普通用户默认都有 crontab 权限,如果要限制用户使用 crontab ,就需要编辑/var/adm/cron/cron.deny
四、crontab命令语法及其各个参数含义
crontab命令的语法为:
crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]
注意:crontab -u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。
参数说明:
-e [UserName]: 编辑时程表
-r [UserName]: 删除用户的时程表
-l [UserName]: 列出用户的时程表
-v [UserName]: 列出用户cron作业的状态
FILE:调度任务文件名
crontab调度命令的格式:
* * * * * command
crontab命令中的一些常用特殊符号:
符号 | 说明 |
* | 表示任何时刻 |
, | 表示分割 |
- | 表示一个段,如第二段里: 1-5,就表示1到5点 |
/n | 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1. |
实例:
30 * * * * 每30分钟执行一次
30 5 * * * 每天的5:30执行
30 5 1 * * 每月1号的5:30执行
30 5 1 10 * 10月1号的5:30执行
30 5 * * 1 每周一的5:30执行
0,10 5 * * 0,2,3 每周日,周二,周三的5:00和5:10 执行
0-10 5 1 * * 毎月1日从5:00到5:10毎隔1分钟执行一次
0 21 * * 1-6 周一到周六 21:00 执行
*/10 * * * * 每隔10分 执行
* 1 * * * 从1:0到1:59 每隔1分钟 执行
0 * * * * 毎时0分 每隔1小时 执行
0 1 * * * 1:00 执行
0 */1 * * * 毎时0分 每隔1小时 执行
2 8-20/3 * * * 8:02,11:02,14:02,17:02,20:02 执行
五、crontab在线生成网站
上一篇: git命令
下一篇: Git 常用命令总结