定时任务命令

来源:互联网 发布:算法导论英文版 百度云 编辑:程序博客网 时间:2024/06/07 21:46
1.定时任务服务提供crontab命令来设定服务2.crontab -e  //编辑某个用户的cron的服务3.crontab -l  //列出某个用户cron服务的详细内容4.crontab -r  //删除某个用户的cron服务

定时任务结合PHP的案列

## php 代码 db.php
<?phpclass Db {    static private $_instance;    static private $_connectSource;    private $_dbConfig = array(        'host' => '127.0.0.1',        'user' => 'root',        'password' => '',        'database' => 'video',    );    private function __construct() {    }    static public function getInstance() {        if(!(self::$_instance instanceof self)) {            self::$_instance = new self();        }        return self::$_instance;    }    public function connect() {        if(!self::$_connectSource) {            self::$_connectSource = @mysql_connect($this->_dbConfig['host'], $this->_dbConfig['user'], $this->_dbConfig['password']);              if(!self::$_connectSource) {                throw new Exception('mysql connect error ' . mysql_error());                //die('mysql connect error' . mysql_error());            }            mysql_select_db($this->_dbConfig['database'], self::$_connectSource);            mysql_query("set names UTF8", self::$_connectSource);        }        return self::$_connectSource;    }}/*$connect = Db::getInstance()->connect();$sql = "select * from video";$result = mysql_query($sql, $connect);echo mysql_num_rows($result);var_dump($result);*/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
## file.php
<?phpclass File {    private $_dir;    const EXT = '.txt';    public function __construct() {        $this->_dir = dirname(__FILE__) . '/files/';    }    public function cacheData($key, $value = '', $cacheTime = 0) {        $filename = $this->_dir  . $key . self::EXT;        if($value !== '') { // 将value值写入缓存            if(is_null($value)) {                return @unlink($filename);            }            $dir = dirname($filename);            if(!is_dir($dir)) {                mkdir($dir, 0777);            }            $cacheTime = sprintf('%011d', $cacheTime);            return file_put_contents($filename,$cacheTime . json_encode($value));        }        if(!is_file($filename)) {            return FALSE;        }         $contents = file_get_contents($filename);        $cacheTime = (int)substr($contents, 0 ,11);        $value = substr($contents, 11);        if($cacheTime !=0 && ($cacheTime + filemtime($filename) < time())) {            unlink($filename);            return FALSE;        }        return json_decode($value, true);    }}$file = new File();echo $file->cacheData('test1');
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
## cron.php
<?php// 让crontab定时执行的脚本程序     */5 * * * * /usr/bin/php /data/www/app/cron.php// 想获取video中 6条数据require_once('./db.php');require_once('./file.php');$sql = "select * from video where status = 1 order by orderby desc";try {    $connect = Db::getInstance()->connect();} catch(Exception $e) {    // $e->getMessage();    file_put_contents('./logs/'.date('y-m-d') . '.txt' , $e->getMessage());    return;}$result = mysql_query($sql, $connect); $videos = array();while($video = mysql_fetch_assoc($result)) {    $videos[] = $video;}$file = new File();if($videos) {    $file->cacheData('index_cron_cahce', $videos);} else {    file_put_contents('./logs/'.date('y-m-d') . '.txt' , "没有相关数据");}return;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

最后创建定时任务 调用cron.php,调用列子的时候,建议大家,把列子中的数据库和表的名字改下,以免出错!