配置文档
<?php /** * 任務進程中的配置文档 * time 單位秒 * @var array */ return [ //任務 id "TASK"=>[ "clearmeesage"=>[ "time"=>60, "number"=>0, "name"=>"clearmeesage" ],//清除短信中不要的垃圾數據 "clearroom"=>[ "time"=>3600, "number"=>1, "name"=>"clearroom" ],//清除房間中不要的垃圾數據 "backup"=>[ "time"=>86400,//多久備份一次 "number"=>2, "name"=>"backup", "target_dir"=>"/home/bak/",//備份的路徑 "dbArray"=>[//要備份的數據庫 "tourism_game", ], "past_time"=>9//過期時間/天 ],//數據庫定時備份 ], "EXECUTE"=>["clearroom","backup","clearmeesage"],//需要啓動的任務 "backup", //數據庫信息 "DB"=>array( 'DB_TYPE' => 'mysql', 'DB_HOST' => 'localhost', 'DB_NAME' => '',//數據庫名稱 'DB_USER' => '',//數據庫賬號 'DB_PWD' => '',//密碼 'DB_PORT' => '3306', 'DB_CODE'=>'utf8' ), //郵件發送配置 "EMAIL"=>[ 'SMTP_HOST' => 'smtp.qq.com', //SMTP服務器 'SMTP_PORT' => '587', //SMTP服務器耑口 'SMTP_USER' => '8044023@qq.com', //SMTP服務器用戶名 'SMTP_PASS' => '', //SMTP服務器密碼 'FROM_EMAIL' => '8044023@qq.com', //發件人EMAIL 'FROM_NAME' => '測試附件服務器耑', //發件人名稱 'REPLY_EMAIL' => '', //回複EMAIL(留空則爲發件人EMAIL) 'REPLY_NAME' => '', //回複名稱(留空則爲發件人名稱) "GET_EMAIL" => 'cqkxm@qq.com',//接收郵箱地址 ], ]; ?>
業務代碼
<?php /** * 備份數據庫 * @author 碼辳<8044023@qq.com> * */ namespace Crontab; import("PHPMailer.PHPMailerAutoload");//郵件發送插件 class init{ public static function _init(){ $date = date("Ymd"); $sql_arr=array(); foreach(C("TASK.backup")['dbArray'] as $db_name){ $sql_name=C("TASK.backup")['target_dir'].$db_name."_".$date.".sql"; $command ="mysqldump -u ".C("DB.DB_USER")." -p".replace_keyword(C("DB.DB_PWD"))." ".$db_name." >".$sql_name; shell_exec($command); $sql_arr[]=$sql_name; } //郵件發送C("EMAIL.GET_EMAIL") timePHP_send_mail(C("EMAIL.GET_EMAIL"),'測試備份-'.date("Y-m-d H:i:s"),'備份測試環境-'.date("Y-m-d H:i:s",time()),'<p>感謝你使用timePHP框架!</p>',$sql_arr); //刪除 過期的數據庫備份數據 $past_time=C("TASK.backup")['target_dir']; for($i=$past_time;$i>=1;$i--){ foreach(C("TASK.backup")['db_array'] as $db_name){ $command="rm -rf ".C("TASK.backup")['target_dir'].$db_name."_".date("Ymd",time()-(($i+$past_time)*86400)).".sql"; shell_exec($command);//是否刪除 過期的數據庫 } } } }