PHP那些事儿

废寝忘食的Crontab

2019-06-25  本文已影响0人  栋公子

概述

什么是crontab呢?

crontab是用于设置周期性执行的任务的工具。该词来源于希腊语 chronos(χρνο),原意是时间。

想象一下,你的工作如果是一个运维人员,你需要每天去对系统进行health check,你需要每天凌晨对过去的一天系统数据进行统计,你需要每周对系统日志进行备份切割,你需要每个月对系统关键数据进行备份,如果这些所有的工作全部用人去完成,那么你还哪有时间泡妞呢,到时候可就真是人傻钱多死的早了,但是有了crontab就不一样了,当你设置好了指令,他会帮你统统的搞定,然后你就可以去酒吧、去夜场、emmm..你懂的..

安装

说明:本次安装演示是在centos下,使用的工具为yum

yum install -y cronie crontabs

检查crontab是否启动命令

systemctl status crond

执行这条命令,如果返回一下说明启动安装并启动成功

可以看到active的状态为running,说明服务正在运行

那如果并未启动呢?执行下面这条命令启动

systemctl restart crond //启动crontab

启动完成用上述命令检查是否启动即可

配置文件

打开配置文件命令

vi /etc/crontab

可以看到一下内容

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin //默认系统环境变量,如果有需要,可以在后面添加

MAILTO=root //代表每触发一个任务都会给root用户发送系统内部邮件,需要保证邮件正常

# 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

解析:

*  *  * *  *  my command

分 时 日 月 周  要运行的命令

/代表每 例如 */1 每分钟

- 代表数字的区间,例如 1-10

, 代表两个数字 例如 1,2

命令:

crontab -l //查看当前所有的命令

crontab -e //编辑命令

问题来了,对于写入对命令保存在哪里呢?

如果是你是root用户,保存地址为:

/var/spool/cron/root

如果你是user_o1用户,保存地址为:

/var/spool/cron/user_o1

额外补充

添加系统级别环境变量文件:

vi /etc/profile

PATH=/usr/local/php/bin/php

export PATH

添加用户级别环境变量

vi /root/.bash_profile

PATH=$HOME/bin:/usr/local/php/bin/php

export PATH

本文章到现在只是简单的讲解crontab,后续本文章会继续添加维护,请关注本专栏,获取更新

上一篇下一篇

猜你喜欢

热点阅读