废寝忘食的Crontab
概述
什么是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,后续本文章会继续添加维护,请关注本专栏,获取更新