Linux中的Crontab定时任务详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gu_wen_jie/article/details/80301014

crontab介绍

在日常的项目开发中,我们有时候会需要定时的执行一些人物,比如数据库备份,或者你的项目中的某个脚本需要定期定时的去执行等等。那么这些需求都可以所使用linux中crontab定时任务来完成。
Crontab:

  • 用于设置周期性被执行的指令
  • 该命令读取指令存放于crontab文件中供后续读取和执行
  • crond为其守护进程,一般在后台默默运行,不间断的检查是否有预定的作业需要执行

命令格式:分 时 日 月 星期 <命令> <日志>
图例:
这里写图片描述

实例

现在我们就拿一个实际的demo写展示一下定时任务的编写和使用。当然,这个前提是你会基础的linux命令和基础的shell脚本编写。定时任务这个本身就是linux里面很基础的东西。如果不是太熟悉的可以网上找点资料看看,大把大把的。。。

  • 编写shell脚本
    我就在我的服务器上简单的实现一下
//当前目录位置是:/home/wwwroot/crontabtest/
//首先创建一个**test.sh**shell文件
touch test.sh
//添加该文件可执行权限
chmod +x test.sh
//创建一个**test.php**php文件

touch test.php
//添加该文件可执行权限
chmod +x test.php

touch log.log
//添加该文件可执行,写权限,用来保持存日志
chmod +wx log.log

touch test.txt
//添加该文件可执行,写权限,用来保存测试数据
chmod +wx test.txt

//以上的修改权限一夜可以合并操作

//使用vim 编写shell脚本
vim test.sh

test.sh:

#!/bin/bash
#设置一下时间,为后续的日志记录提供便利
date "+%Y-%m-%d %H:%M:%S"
#执行php脚本文件
php /home/wwwroot/crontabtest/test.php

test.php:

<?php
//目的往txt文件中以追加的形式添加一个随机数,我们简单的测试一下即可
 $number = rand(1000,9999).'/';
 file_put_contents("/home/wwwroot/crontabtest/test.txt",$number,FILE_APPEND);

编写定时任务:

//输入crontab -e
crontab -e
//进入命令编写文件
//按照第一步的介绍编写
//前面全是*号  代表 每分钟每小时每日每月每周 都执行后面这个test.sh shell 脚本  然后将日志输出到
//log.log日志文件中并且标准化输出   2>&1  代表标准化输出
* * * * * /home/wwwroot/crontabtest/test.sh >> /home/wwwroot/crontabtest/log.log 2>&1
//你在编写的时候注意你的路径和大小写问题
//编写完毕你可以保持存并退出,这时候定时任务已经启动。可以使用如下命令查看你的所有定时任务
crontab -u root -l

这个每过一分钟的时候都会向test.txt文件写入一个随机数,并且向log.log日志文件中添加一条记录。目前我们的日志没有多余信息展示,你可能只会看到一个时间展示,当然这是成功的情况下,如果失败,日志文件中就会记录失败的原因,所以日志是很重要的 ,我们很多的排错和信息查询都依赖日志。如下:
test.txt和log.log:
这里写图片描述
这里写图片描述

总结

定时任务的使用还是比较灵活的,包括很多任务你也可以直接在shell脚本中编写而不必再另写一个php文件,包括定时任务的执行时间的修改等等。
最后,注意:linux下严格区分大小写哦。

猜你喜欢

转载自blog.csdn.net/gu_wen_jie/article/details/80301014
今日推荐