一、cron介绍
经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,可以在以下文件夹内找到相关配置文件。
- /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
- /etc/crontab 这个文件负责调度各种管理和维护任务。
- /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
- 以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。
二、crontab的使用
-u user:用来设定某个用户的crontab服务;
file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
-i:在删除用户的crontab文件时给确认提示。
用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。crontab的命令构成为时间+动作,其时间有分、时、日、月、周五种,操作符有
- * 取值范围内的所有数字
- / 每过多少个数字
- - 从X到Z
- ,散列数字
使用例子:
在上午8点到11点的第3和第15分钟执行Command
3,15 8-11 * * *Command
每1分钟执行一次http请求
* * * * * curl -H 'AccessKey:a338c92c-be3d-4650-8c2d-ccc0be95bea8' -H 'Timestamp:1577265662331' -H 'ExpirationPeriod:600000' -H 'Signature:VI3f7YtkHA13MzIj0DCgXOJS9v84DlgxZKlBAWWo8g8=' 'http://xxx.xxx.com/ds/v1/algorithms?pageIndex=1&pageSize=10&search=&algorithmStatus=RELEASED' >> /Users/psb/output.txt
在输入执行命令后如果出现以下问题
crontab: no crontab for hayek - using an empty one
crontab: "/usr/bin/vi" exited with status 1
解决方法如下:
(1) EDITOR=vim crontab -e
直接编辑,以后直接crontab -e
直接打开就行。
(2) export EDITOR=vim
(3) 向cron进程提交一个crontab文件之前,首先要设置环境变量EDITOR。cron进程根据它来确定使用哪个编辑器编辑crontab文件。9 9 %的UNIX和LINUX用户都使用vi,如果你也是这样,那么你就编辑$HOME目录下的. profile文件,在其中加入这样一行:
EDITOR=vi; export EDITOR
三、crontab服务的重启关闭,开启
(1)Mac系统
sudo /usr/sbin/cron start
sudo /usr/sbin/cron restart
sudo /usr/sbin/cron stop
(2)Ubuntu系统
sudo /etc/init.d/cron start
sudo /etc/init.d/cron stop
sudo /etc/init.d/cron restart