php 执行mongoexport 利用 exec执行

// exec(‘mongoexport -h 192.168.6.97 --port 40000 -d fenjianlidb -c fenjianli -f "meta_info.file_path" -q "{\‘create_time\‘:{\‘$gte\‘: \‘1487088000\‘,\‘$lte\‘: \‘1487644200\‘}}" -o ‘ . $save_path .‘middle.txt‘, $ret);  //window平台

//php 执行

exec(‘mongoexport -h 192.168.6.97 --port 40000 -d zhengliangdb -c newzengliang -f "meta_info.file_path" -q \‘{create_time:{$gte: 1487645408,$lte: 1487646251}}\‘ -o /data/work_time/work0221/testMid/middle.txt‘, $ret);  //Linux 成功 (切记转移) mongoexport --help 查看

--------------------------------------测试代码-----------------------------------------

<?php

/**

* @Author: lixiaozhu

* @Date:   2016-09-21 12:51:55

* @Last Modified by:   lixiaozhu

* @Last Modified time: 2017-01-20 18:50:24

*/

set_time_limit(0);

// $save_path = ‘D:/phpStudy/WWW/test01/mongo/test0221/‘;

$save_path = ‘/data/work_time/work0221/testMid/‘;

//中间件

// exec(‘mongoexport -h 192.168.6.97 --port 40000 -d fenjianlidb -c fenjianli -f "meta_info.file_path" -q "{\‘create_time\‘:{\‘$gte\‘: \‘1487088000\‘,\‘$lte\‘: \‘1487644200\‘}}" -o ‘ . $save_path .‘middle.txt‘, $ret);  //window平台

//php 执行

exec(‘mongoexport -h 192.168.6.97 --port 40000 -d zhengliangdb -c newzengliang -f "meta_info.file_path" -q \‘{create_time:{$gte: 1487645408,$lte: 1487646251}}\‘ -o /data/work_time/work0221/testMid/middle.txt‘, $ret);  //Linux 成功

$groups = array(

‘group1‘ => ‘http://192.168.6.49/‘,

‘group2‘ => ‘http://192.168.6.50/‘,

);

$content = file_get_contents($save_path . ‘middle.txt‘);

$list = preg_split(‘/\s+/‘, $content);

$prefix = date(‘YmdH‘);

foreach ($list as $key => $item) {

echo $key++, PHP_EOL;

$item = json_decode($item, true);

$file_path = trim($item[‘meta_info‘][‘file_path‘]);

$group = substr($file_path, 0, 6);

if (isset($groups[$group])) {

$url = $groups[$group] . $file_path;

$content = file_get_contents($url);

if(false !== strpos($content,‘zhaopin.com‘)){ //可能会有 zhaopin.cn localhost/qiaoda/zhilian/z1.html

error_log($url . PHP_EOL, 3, $save_path . $prefix .‘_zhilian.txt‘);

} elseif (false !== strpos($content,‘51job.com‘)){

error_log($url . PHP_EOL, 3, $save_path . $prefix .‘_51job.txt‘);

} elseif (false !== strpos($content,‘liepin.com‘)){

error_log($url . PHP_EOL, 3, $save_path . $prefix .‘_liepin.txt‘);

} elseif (false !== strpos($content,‘ganji.com‘)){

error_log($url . PHP_EOL, 3, $save_path . $prefix . ‘_ganji.txt‘);

} elseif (false !== strpos($content, ‘58.com‘)){

error_log($url . PHP_EOL, 3, $save_path . $prefix . ‘_58tongchen.txt‘);

} elseif (false !== strpos($content, ‘chinahr.com‘)){

error_log($url . PHP_EOL, 3, $save_path . $prefix . ‘_YCjianli.txt‘);

} else {

error_log($url . PHP_EOL, 3, $save_path . $prefix . ‘_other.txt‘);

}

} else {

echo ‘mubanFileError‘;

error_log($file_path . PHP_EOL, 3, $save_path . $prefix . ‘_mubanFileError.txt‘);

}

unset($content);

}

时间: 2024-10-12 22:19:03

php 执行mongoexport 利用 exec执行的相关文章

linux下shell脚本执行方法及exec和source命令

exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息. bash shell的命令分为两类:外部命令和内部命令.外部命令是通过系统调用或独立的程序实现的,如sed.awk等等.内部命令是由特殊的文件格式(.def)所实现,如cd.history.exec等等. 在说明exe和source的区别之前,先说明一下fork的概念. fork是linux的系统调用,用来创建子进程(child

Runtime.getRuntime.exec()执行linux脚本导致程序卡死有关问题

Runtime.getRuntime.exec()执行linux脚本导致程序卡死问题问题: 在Java程序中,通过Runtime.getRuntime().exec()执行一个Linux脚本导致程序被挂住,而在终端上直接执行这个脚本则没有任何问题.原因: 先来看Java代码: public final static void process1(String[] cmdarray) {        Process p = null;        BufferedReader br = null

Java Runtime.getRuntime().exec 执行带空格命令解决办法

String command = OpenOffice_HOME + "program\\soffice -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\" -nofirststartwizard "; command = "cmd /c start "+command.replaceAll(" ","\" \""); P

利用js_API 执行对html文档元素的属性的CRUD操作

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>对html元素属性的增删改查操作</title> <style> #attr{text-align:center;font-size:24px;color:white;background:#008000;width:400px;height:30px; } .myclass{back

SQL Server 执行计划利用统计信息对数据行的预估原理二(为什么复合索引列顺序会影响到执行计划对数据行的预估)

本文出处:http://www.cnblogs.com/wy123/p/6008477.html 关于统计信息对数据行数做预估,之前写过对非相关列(单独或者单独的索引列)进行预估时候的算法,参考这里. 今天来写一下统计信息对于复合索引在预估时候的计算方法和潜在问题. 本文原形来自于是个实际业务问题,某SQL在利用一个符合索引做查询的时候,发现始终会出现预估误差较大的情况, 而改变复合索引的列顺序,这个预估行数的误差会发生变化, 也就是说,Create  index idx_index1 ON T

selinux 限制 apache exec执行cgi

一.起因某日发现smokeping访问失败,发布的apache 进程不存在:在/usr/local 下找不到任何apache文件,怀疑apache是rpm安装,使用/etc/init.d/httpd启动后果真listen 8001端口··· 二.排查1.获取error日志的关键内容启动后尝试刷新8001 下的smokeping页面,发现仍旧错误,哎,rpm装的apache error日志在哪来着?想不起来了,没办法,迂回一下:首先找到apache的进程号,需要work进程[[email prot

linux利用crontab执行sqldump 定时备份数据库

linux利用crontab执行sqldump 定时备份数据库 : #!/bin/bash var=`date +%Y%m%d` /usr/local/mysql/bin/mysqldump  --databases core|gzip >/apps/sqldump/bak/core${var}.gz /usr/local/mysql/bin/mysqldump  --databases access_service|gzip > /apps/sqldump/bak/access_servic

反射中的一个问题点:利用Method执行main方法特殊的地方

利用Method执行main方法 问题: 启动Java程序的main方法的参数是一个字符串数组,即public static void main(String[] args),通过反射方式来调用这个main方法时, 如何为invoke方法传递参数呢?按jdk1.5的语法,整个数组是一个参数,而按jdk1.4的语法,数组中的每个元素对应一个参数,当把一个字符 串数组作为参数传递给invoke方法时,javac会到底按照哪种语法进行处理呢?jdk1.5肯定要兼容jdk1.4的语法,会按jdk1.4的

[JS5] 利用onload执行脚本

1 <html> 2 <head> 3 <title>利用onload执行脚本</title> 4 <SCRIPT TYPE="text/JavaScript"> 5 <!-- 6 function opennews(){ 7 alert("利用onLoad事件执行脚本") 8 } 9 //--> 10 </SCRIPT> 11 </head> 12 <body o