版权声明:本文为博主原创文章,未经博主允许不得转载。 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下严格区分大小写哦。