一、cron 设置定时任务详解
1. 介绍
定时任务 cron job
被用于安排那些需要被周期性执行的命令。利用它,你可以配置某些命令或者脚本,让它们在某个设定的时间内周期性地运行。cron 是 Linux 或者类 Unix 系统中最为实用的工具之一。cron 服务(守护进程)在系统后台运行,并且会持续地检查 /etc/crontab
文件和 /etc/cron.*/
目录。它同样也会检查 /var/spool/cron/
目录。
在 linux 平台上如果需要实现任务调度功能可以编写 cron 脚本来实现。以某一频率执行任务,linux 缺省会启动 crond 进程,crond 进程不需要用户启动、关闭。
crond 进程负责读取调度任务并执行,用户只需要将相应的调度脚本写入 cron 的调度配置文件中。
cron 的调度文件有以下几个:
- crontab
- cron.d
- cron.daily
- cron.hourly
- cron.monthly
- cron.weekly
如果用的任务不是以 hourly monthly weekly 方式执行,则可以将相应的 crontab 写入到 crontab 或 cron.d 目录中。
2. 安装部署
# 安装crontab: $ yum install crontabs # 启动服务 $ systemctl start crond.service # 关闭服务 $ systemctl stop crond.service # 重启服务 $ systemctl restart crond.service # 重新载入配置 $ systemctl reload crond.service # 查看crontab服务状态: $ systemctl status crond.service # 加入开机自动启动: $ systemctl enable crond.service
3. 命令
Crontab 选项
以下是 crontab 的有效选项:
$ crontab -r #删除 crontab 文件。 $ crontab -ir #删除 crontab 文件前提醒用户。 $ crontab file [-u user] #用指定的文件替代目前的crontab。 $ crontab -[-u user] #用标准输入替代目前的crontab. $ crontab -1[user] #列出用户目前的crontab. $ crontab -e[user] #编辑用户目前的crontab,如果文件不存在会自动创建. $ crontab -d[user] #删除用户目前的crontab. $ crontab -c dir #指定crontab的目录。
4. crontab 配置
$ 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 (