手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:飞信

rm -rf 软连接目录的时候,如何不删除目录里的文件?

 大家都知道rm -rf 的功能,所以很避讳的就是“rm -rf 相对路径”,太危险了,万一漏了个点,来个rm -rf /,就死翘翘了。

同样ln的功能,也知道,创建一个软连接。很多时候我都是ln -s /xxx/frameword /xxx/xxx/web/,让framework存在于每个目录下面。当然也可以直接指定。

以前我删除软连接的时候,都是 rm -rf  /xxx/xxx/,从来没有出过事,只是这一次,在使用https://github.com/snakevil/bashrc.x进行优化bash的时候,发现软链接删除不掉了。

在问了snakevil后,才了解:“rm -rf /xxxx 与 rm -rf /xxxx/ ”是不一样的东西,在某些平台下面 rm -rf  /xxx/是删除软链接目录里的文件,而不是删除软链接,有很多人因此吃过药。。。正确的删除方法就是不带最后的“/”

---

纯粹记录一下

 

Tags: rm

一次糟糕的测试

关于飞信,我上次写过学着写PHP飞信,然而今天晚上我把上文中测试的内容重现时却发现,现实有点残酷。我用curl的时候,速度居然没有fsocketopen快?我于是多次测试,然而,我却得到了一些令人沮丧的结果

【$postData,$postLength,都不提供。。。】

1、curl,利用curl来post

平均【大约 1.8~1.9秒】
  1. $ch = curl_init();  
  2. $chOptions = array(  
  3.     CURLOPT_URL => "http://nav.fetion.com.cn/nav/getsystemconfig.aspx",  
  4.     CURLOPT_HTTP_VERSION => 'HTTP/1.0',  
  5.     CURLOPT_USERAGENT => sprintf('IIC2.0/pc %s' , self::FETION_CLIENT_VERSION),  
  6.     CURLOPT_ENCODING => 'gzip,deflate',  
  7.     CURLOPT_HTTPHEADER => array('Content-Type: text/xml; charset=utf-8'),  
  8.     CURLOPT_POST => 1,  
  9.     CURLOPT_POSTFIELDS => $postData ,  
  10.     CURLOPT_RETURNTRANSFER => 1,  
  11.     CURLOPT_HEADER => 0  
  12. );  
  13. curl_setopt_array($ch$chOptions);  
  14. $res = curl_exec($ch);  

 2、fsocketopen,同样POST数据

平均【大约 0.8~0.9秒】
  1. $headers=<<<eot  
  2. POST /nav/getsystemconfig.aspx HTTP/1.0  
  3. User-Agent: IIC2.0/pc 3.1.0480  
  4. Accept-Encoding: deflate, gzip  
  5. Host: nav.fetion.com.cn:80  
  6. Content-Length: {$postLength}  
  7.   
  8. {$postData}  
  9. eot;  
  10. fwrite($fp,$headers);  
  11. $received=fread($fp,1024);  
  12. fclose($fp);  

3、stream,利用文件流

平均【大约 1.3~1.4秒】
  1. $opts = array (  
  2.     'http' => array (  
  3.         'method' => 'POST',  
  4.         'header'=> "Content-type: application/x-www-form-urlencoded" .  
  5.                    "Content-Length: " . $postLength . "",  
  6.         'content' => $postData  
  7.     ),  
  8. );  
  9. $context = stream_context_create($opts);  
  10. //$received = file_get_contents('http://nav.fetion.com.cn/nav/getsystemconfig.aspx', false, $context , 0 ,1024);  
  11. $fp = fopen('http://nav.fetion.com.cn/nav/getsystemconfig.aspx','r',false,$context);  
  12. if($fp){  
  13.     $received = fgets($fp, 512);  //在这里我用了三种测试,fgets,fread,stream_get_contents
  14.     fclose($fp);  
  15. }  

在这里我用了两种方式,一种是file_get_contents还有一种是fopen,file_get_contents的方法被我注释了。。。

在这三种中,我发现真的只有fsocketopen后然后fread是最快的。

真让我沮丧。。因为第三种方法中file_get_contens也可以指定读取的长度。但PHPRPC作者andot却认为,file_get_contents把头已经读回来了。我想,file_get_contents其实已经把数据读回来了,虽然是指定了长度,但其实只是读回来后再截取的。

唉。看来,不得不用fsocketopen了。。不知道除此之外有没有什么好办法。

诡异的【session丢失】和无语的【<img src="">标签】

以下发生的内容,本人没有遇到过,但既然有相应的例子,我想,或许还是会有人遇到同样的问题吧?
记录一下,如果有类似的问题,也许就是解决方法。解决方法不在原文中,是在回复中的。我也会一并贴上来
原文如下:

http://www.cnblogs.com/kyneblog/archive/2009/06/11/1500999.html
  1. 今天算是长见识了,项目发布到服务器上面了,但是客户在使用的时候发现,只要进入新增页面和修改页面。再进行操作就会自动跳转到登陆页面(我设置了 session保存用户登陆信息),而别的页面就不会出现这个问题。从下午开始找个问题,开始以为不知道只有这两个页面有问题,以为全部都是这样的问题,是IIS的设置问题。我将session的超时时间设置了3个小时,发现还是会跳转到登陆页面。也在web.config文件里面设置了超时时间。但是效果还是一样的。自己测试了一下午,发现只有新增页面和修改页面会出现这样的问题(本机测试没问题/测试服务器上测试也没问题)。经过几次实验,发现确实只有这两个页面会有问题,那就可以断定:不是IIS设置问题,也不是web.config的问题。本地调试也不出现这样的情况,没办法,只能等客户下班之后,没人用了才到正式服务器上去慢慢的调试,最后想个笨办法,将其中一个页面的.cs文件里面的代码一句一句的删掉,可没想到我都将cs文件里面的代码全部删除了,还是会出现这样的情况,我当时就纳闷了。不是事件的问题,难道是HTML页面出了问题???  
  2.   
  3. 既然耐着性子删了cs文件的代码。我就继续删!将aspx页面里面的HTML代码和JS代码也一个一个的删掉,一个一个控件删掉测试,从下午上班一直测试到晚上11点,眼睛都看花了,终于,在我将aspx页面的其中几个控件删除之后发现问题了!页面不跳转了!这下来劲了,肯定是这几个控件的原因,于是乎,我就一个一个控件还原回去,不跳转!继续还原!!当我还原到<img src="" >这个控件的时候测试,发现问题了!只要我一加上<img src="">这个标签!页面就跳转到登陆页面了。问题肯定出在这了!但是我又想不通了,为什么就这个HTML标签一加上就会出问题,这应该不关 session什么事啊,怎么会加上这个标签页面就直接跳转了呢?  
  4.   
  5.  在网上找了下资料,没找到相关的资料,后来试着将img 标签的src=""加上图片,src="imges/001.jpg" 再测试,发现页面不跳转了!!原来问题出现在这里!  
  6.   
  7. "" 为空的情况下,可能导致session丢失!跟经理说了下这个情况,他也很惊奇还没见过一个HTML标签会导致session丢失的情况,因为在本地和测试服务器上测试的时候都没这样的情况,后来猜测了下,可能是IIS的问题,可能是IIS解析的时候解析到src=""这个地方解析不了,导致程序出问题。但这只是个人猜测,正式服务器上我也没权力当时去打补丁,一个大公司的正式服务器,我要打补丁去了,那他们别的网站和系统不全当机了?所以就只要想了个办法,将src=""里面加上图片,幸好这个img标签是隐藏起来的,加了也不影响界面。呵呵。。。  
  8.   
  9. 最让人郁闷的是我测试的时候是用Symantec pcAnywhere这个软件远程连接到的正式服务器上。反应慢得可以,简直比电脑没装显卡驱动还慢...唉,不过累也累了,以后碰到这样的情况就有经验了。  
  10.   
  11. 我不知道网上有没有人碰到过跟我一样的情况;如果碰到了,希望能给你带来点灵感。哇哈哈。。。   

原文并没有解决这个问题,或者说并没有了解到问题出在哪里,虽然是用了一种很恶心的方法解决了它,但并没有发现问题的本质,而本质则由回复发现了,请看第51楼:

XML/HTML代码
  1. 我给楼主分析下  
  2.   
  3. 先说几点结论:  
  4. 1、并不是所有浏览器都会出现这种情况(IE上会出现)。  
  5. 2、要满足特定的条件才会出现这种情况(比如index/default跳转到login.aspx)。  
  6.   
  7. 再说根源:  
  8.   
  9. 根源:在于在IE下当image 标签的src为空时或图片不存在,会请求图片所在目录或根目录。而刚好index/default又跳转到login,而请求login时会清空session.  
  10.   
  11.   
  12. (上述index/default login 为假想,仅供说明用,据实际情况改变也改变)  

75楼说:

XML/HTML代码
  1. 帮你测试过,当<img src="" />时,加载或回调该页面的时候会直接调用该页面所属的目录下的Default.aspx页面  
  2.   
  3. 当目录下没有Default.aspx页面的时候可能会直接导致Session的丢失  

78楼认为:

XML/HTML代码
  1. 我曾经遇到因为<img src="">的情况下,服务器会加载两次页面,后来在网上查到信息关于img 标签中的src为空时,服务器会重新加载页面,这个img标签有时很古怪  

87楼也有同样问题:

XML/HTML代码
  1. 昨天也在為phpbb後臺增加功能時也遇到了類似的問題  
  2. 當src或href屬性為空時,IE和其他瀏覽器表現不一致  
  3. http://soido.org/blog/649  

这里还有一篇针对本文内容的测试:
http://www.cnblogs.com/yjmyzz/archive/2009/06/11/1501654.html
可以看看哦

Tags: session, img