crontab定时任务
前言
无论是做开发还是做运维的程序猿,crontab命令是必须用到的命令,特别是对于运维的人,自动化运维中,crontab也属于其一。
今天来记录常用的crontab定时处理命令。
crontab简介
简而言之呢,crontab就是一个自定义定时器。
crontab配置文件
/var/spool/cron/
该目录下存放的是每个用户(包括root)的crontab任务,文件名以用户名命名
/etc/cron.d/
这个目录用来存放任何要执行的crontab文件或脚本。
crontab时间说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| # .---------------- 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 # | | | | | # * * * * * command to be executed ```
minute:代表一小时内的第几分,范围 0-59。 hour:代表一天中的第几小时,范围 0-23。 mday:代表一个月中的第几天,范围 1-31。 month:代表一年中第几个月,范围 1-12。 wday:代表星期几,范围 0-7 (0及7都是星期天)。 who:要使用什么身份执行该指令,当您使用 crontab -e 时,不必加此字段。 command:所要执行的指令。
## crontab命令
crontab服务的几种常用bash命令
```bash service crond start service crond stop service crond restart service crond reload service crond status
|
重新指定crontab定时任务列表文件
查看crontab定时任务
编辑定时任务【删除-添加-修改】
添加定时任务【推荐】
Step-One : 编辑任务脚本【分目录存放】【ex: backup.sh】
Step-Two : 编辑定时文件【命名规则:backup.cron】
Step-Three : crontab命令添加到系统crontab backup.cron
Step-Four : 查看crontab列表 crontab
crontab时间举例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| 0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
0 23-7/2,8 * * * echo "Have a good dream" >> /tmp/test.txt
0 11 4 * 1-3 command line
0 4 1 1 * command line SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
5,15,25,35,45,55 16,17,18 * * * command
00 15 * *1,3,5 shutdown -r +5
10,40 * * * * innd/bbslink
1 * * * * bin/account
203 * * * (/bin/rm -f expire.ls logins.bad;bin/expire$#@62;expire.1st)
|
crontab实际应用
连接服务器 (步骤略)
进入到crontab的配置文件目录
浏览配置文件root
在其中追加我们的shell, 本shell的意义是定时去执行某文件里的bash指令
1
| */1 * * * * /etc/cron.d/GitPulljszhai.sh #每分钟执行一次
|
其中GitPullGitPulljszhai是我们即将存放详细shell文件名,内容如下:
1 2 3 4 5 6
| #!/bin/bash
set -e #抛出错误 cd /www/wwwroot/jszhai.cn/jszhaiVuePress/jszhai/docs/.vuepress/dist git pull cd - #是返回到上一次的工作目录。
|
赋予运行权限
1
| chmod 777 GitPulljszhai.sh
|
配置完成,重新载入配置
重启服务