代码改变世界

一些工作中遇到的问题分享

2012-04-19 19:21  轩脉刃  阅读(2056)  评论(0编辑  收藏  举报

这些是在工作过程中遇到的问题

当bash命令中有warning,想消除warning怎么做?

cat access.log 2> /dev/null 将系统error不返回到控制台

这里使用2> /dev/null

要分析一个很大(10G)的nginx日志,将最近5分钟的access.log进行分析,怎么做?

这里不能使用高级语言,把10G的日志读到内存中再进行处理是不合理的

使用bash,cat+grep? no 有兴趣的可以试试,太慢了...原因,access.log的日期是从旧到新的,从第一行进行cat是非常缓慢的

可以使用:

tac access.log 2>/dev/null| awk -F: \'{timestamp = $2* 3600 + $3 * 60 ;if(timestamp < 232123213) exit 1; else {print timestamp,"\t",$4}}'

亮点是使用tac

查看某个端口有哪些程序在用?

cat /etc/services |grep 9000

这里有一个很好的文章

php脚本程序press continue...怎么写?

<?php
echo "start" . PHP_EOL;
echo "Press [y] to continue... " . PHP_EOL;
if(trim(fgets(STDIN)) == "y")
{
        echo "yes";
        exit;
}
echo "no"; exit;

?>

如何让php的json_encode的时候不增加反斜杠?

str_replace('\\/', '/', json_encode("2011/7/11"));

如果php版本是5.4的话:

echo json_encode("2011/7/11", JSON_UNESCAPED_SLASHES);

参考文章

php中发送http请求如何不设置本机host就可以把请求指到特定IP

两种方法:

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://yejianfeng.vm1.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXY, "192.168.100.19:80");
$result =  curl_exec($ch);
curl_close($ch);
if($result == '11') {
        echo 'ok1';
}


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://192.168.100.19/index.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Host: yejianfeng.vm1.com"));
$result =  curl_exec($ch);
curl_close($ch);
if($result == '11') {
        echo 'ok1';
}

?>
Creative Commons License

本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名叶剑峰(包含链接http://www.cnblogs.com/yjf512/),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系