干货分享-Crontab定时任务使用
温馨提示:这篇文章已超过648天没有更新,请注意相关的内容是否还可用!
Crontab在linux系统主要用来周期性的执行定时任务管理,与windows下的计划任务类似,操作系统安装完成后,默认会安装此服务工具,且会自动启动crond进程(crond是crontab的服务进程名)。
Linux下的任务调度分为两类查看crontab 任务,系统任务调度和用户任务调度。
这里主要说明用户任务调度,用户使用 crontab命令提交,编辑或删除相应的调度任务。
01查看系统是否安装
[root@localhost ~]# rpm -qa | grep crontab
crontabs-1.11-6.20121102git.el7.noarch
说明系统已有安装版本。
如果没有查到内容,说明系统没有安装crontab
通过yum在线安装:[root@localhost ~]# yum install crontabs(记得要联网)
02crontab服务
(1)查看crontab状态:[root@localhost ~]# systemctl status crond
active(running)表示已开启,正在运行的状态
(2)关闭crontab:[root@localhost ~]# systemctl stop crond
(3)开启crontab:[root@localhost ~]# systemctl start crond
(4)加载crontab:[root@localhost ~]# systemctl reload crond
03crontab全局配置文件
cron.daily 每天执行一次的任务
cron.weekly 每周执行一次的任务
cron.monthly 每月执行一次的任务
cron.hourly 每个小时执行一次的任务
cron.d 系统自动定期需要做的任务
cron.deny 用于控制不让哪些用户使用crontab的功能
crontab 设定定时任务执行文件
04用户定义的cron文件
每个用户都可以有自己的cron配置文件,通过crontab -e就可以编辑。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。
crontab文件的格式
命令:* * * * * command 解释:分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10查看crontab 任务,如果用在minute字段,表示每十分钟执行一次。
例如:每隔两天的上午8点到11点的第3和第15分钟执行 命令:
3,15 8-11 */2 * * command
定时任务编辑步骤:
(1) 开启编辑:[poptest@localhost ~]$ crontab -e
(2) 输入编辑内容:*/1 * * * * echo "hello poptest" >> test.txt
(3) 保存退出
(4) 创建空文件test.txt文件
每隔一分钟就会往文件test.txt中追加一行内容。
Crontab的用途很多,一般用于:
定时数据采集;
定时日志备份;
定时生成报表;
定时数据备份;
...
等等任务。