浅谈 linux 例行性工做 crontab (linux定时任务)

定时任务你们都挺说过,就比如你手机上的闹钟,到了指定的时候就会响起。

今天在对redis缓存进行定时储存时又操做了一把,发现一些细节,写的很差。你们就将就看吧,

首先 简单介绍一下linux 例行性工做 两种方式,php

主要有两种:mysql

  1. at   (和下面同样,只是它只定时执行一次就结束)
  2. crontab

 

演示定时执行php程序将数据插入数据库:

一个案例表:blog

1 CREATE TABLE `blog` (
 2   `blog_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 3   `blog_title` varchar(200) NOT NULL DEFAULT '' COMMENT '标题',
 4   `blog_content` text NOT NULL COMMENT '内容',
 5   `blog_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '时间',
 6   `uid` int(10) unsigned NOT NULL COMMENT '用户id',
 7   `cat_id` int(10) unsigned NOT NULL COMMENT '分类',
 8   `blog_look` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '浏览量',
 9   PRIMARY KEY (`blog_id`),
10   KEY `blog_time` (`blog_time`),
11   KEY `uid` (`uid`),
12   KEY `blog_look` (`blog_look`),
13   KEY `cat_id` (`cat_id`)
14 ) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8 COMMENT='文章表'

一个php文件:/www/123.php (请无视连接数据库面向过程函数,仅供演示)

1 <?php
      2 
      3 $connect = mysql_connect('localhost','root','12315Smm');
      4 mysql_select_db('mydb',$connect);
      5 mysql_query('set names utf8',$connect);
      6 $time=time();
      7 $sql="INSERT INTO `blog` VALUES (null, '我是标题', '我是内容',{$time}, '1', '1', '0')";
      8 mysql_query($sql,$connect);
      9 
     10

 

 

执行  php /www/123.php  先插入一条数据测试代码是否正确。(ps : php是否加入环境变量, 能够执行php -v 测试 ,如没有请找到php程序位置执行,如 /usr/local/php/bin/php  /www/123.php) 

还有在执行时,可能会有提示错误:

PHP Warning: Module 'xxxx' already loaded in Unknown on line 0   ps:(xxxx 表明一些模块名如curl,redis)

缘由

有两种方法来加载在PHP中大多数扩展。一种是直接编译扩展到PHP二进制文件。另外一种是经过一个ini文件动态加载的共享扩展。这些错误代表,动态扩展正在经过.ini文件加载,即便它们已经被编译到PHP二进制文件。linux

解决方法:

要解决此问题,您必须编辑你的php.ini(或extensions.ini文件)文件和注释掉那些已经编译的扩展。例如,修改完成后,由于编译安装的模块不须要引入redis

例:extension=redis.so 改成   ;extension=redis.so sql

执行 php -v 能够看到提示没有了数据库

 

 

设置定时任务 :

命令:crontab -e缓存

添加定时任务,这里添加一条,如多条,每条任务换行,curl

前面的   “*/1  *  *  *  *  ”   分别表明 :分钟,时,日,月,星期。函数

  • *      表明任意时刻,
  • */1   表明没分钟执行一次,
  • /usr/local/php/bin/php    执行的程序php (注意,这里不能用环境变量,必须绝对路劲,不然失败!
  • /www/123.php       要执行的代码或文件 

 

:wq 保存就OK;测试

查看效果;

 

 自动插入成功,

其余执行的方式 同理,

大半夜写的不容易,转载请注明出处!!有不足之处还请大神指点。

相关文章
相关标签/搜索