情景:
从机器A到机器B发起连接,连接超时时间设置为1s,有一定概率的连接失败的情况,使用下面脚本来测试,不断连接,放过成功的连接,只显示失败的连接,并且显示连接失败的时间,脚本如下:
- while :; do r=
nc -z -v -w 1 10.79.40.43 11231 2>&1 | grep -v succe
;if [ "x$r" != "x" ]; then d=date +"%H:%M";echo -n "$d "; echo $r; fi ; done
DevOps
情景:
从机器A到机器B发起连接,连接超时时间设置为1s,有一定概率的连接失败的情况,使用下面脚本来测试,不断连接,放过成功的连接,只显示失败的连接,并且显示连接失败的时间,脚本如下:
nc -z -v -w 1 10.79.40.43 11231 2>&1 | grep -v succe
;if [ "x$r" != "x" ]; then d=
date +"%H:%M";echo -n "$d "; echo $r; fi ; done检查网络连通性:
while :; do nc -z -v -w 1 10.79.40.43 11231 | grep -v succe; done
1. 了解了使用程序创建jira提案的方法
2. jQuery中查找表单中所有可以提交的元素(input select checkbox textarea)的方法: $("#formid").find(":input")
3. 有如下svn命令:
svn log –limit 1 –username xxx –password xxx https://xxx.xx.xx/xxxx
由于该svn没有购买https证书,而且自制的证书的domain都不匹配,于是就会出现提示信息如下:
如果使用(p)选择永远接受,则下次不再有该提示信息,因为他可以将你的输入信息保存的你的家目录下的文件中;但是不行的是,该命令需要通过webserver执行,而执行web的用户是nologin的,没地方保存该信息,于是这里可以通过(t)暂时接受的方式来解决该问题,PHP脚本如下:
注意:这里的错误重定向也是不能忽视的。
重新找出了以前注册的amazon账号,填写了一些支付信息,开通了ec2的服务,先学习一下:
amazon的开通方式还有些特殊:
1. 通过电话的方式确认手机信息的正确性
2. 通过扣费(过期自动退回)的方式确认信用卡的有效性
首先,我编译PHP时使用如下命令:
./configure –prefix=/usr/local/php-5.3.3 && make
完成之后,发现默认的php.ini 为: /usr/local/php-5.3.3/lib/php.ini ; 于是我改变了注意,想修改prefix为 /usr/local , 如果不执行make clean的话,则
./configure –prefix=/usr/local && make
发现默认的php.ini 仍为: /usr/local/php-5.3.3/lib/php.ini
看来必须make clean了, 似乎configure之后生成的头文件: ./main/build-defs.h 是不被依赖的
通过wireshark抓包分析ssl协议,其中,发现client提供给server的可选的sipher suites如下:
定义: openssl\ssl\ssl.h
相关参考:
http://msdn.microsoft.com/en-us/library/aa380513%28v=vs.85%29.aspx
http://www.ietf.org/rfc/rfc2246.txt
http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp?topic=/com.ibm.mq.csqzas.doc/sy10700_.htm
http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp?topic=/com.ibm.mq.csqzas.doc/sy10700_.htm
http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_ssl.htmlhttp://seaknight.bokee.com/6897206.html
测试脚本a.php:
目录结构:
a.php
b.php
include_path 的 = .;/usr/local/lib/php
strace -e file php a.php
——————————
open("a.php", O_RDONLY) = 3 // 打开a.php
getcwd("/usr/home/junjie2", 4096) = 18
lstat64("/usr/home/junjie2/a.php", {st_mode=S_IFREG|0644, st_size=108, …}) = 0
lstat64("/usr/home/junjie2", {st_mode=S_IFDIR|0777, st_size=36864, …}) = 0
lstat64("/usr/home", {st_mode=S_IFDIR|0755, st_size=4096, …}) = 0
lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, …}) = 0
getcwd("/usr/home/junjie2", 4096) = 18 // get current working directory (这个就是include_path 中的 "." )
lstat64("/usr/home/junjie2/./b.php", {st_mode=S_IFREG|0644, st_size=7, …}) = 0 // 找见了
lstat64("/usr/home/junjie2/b.php", {st_mode=S_IFREG|0644, st_size=7, …}) = 0
open("/usr/home/junjie2/b.php", O_RDONLY) = 3
=====
getcwd("/usr/home/junjie2", 4096) = 18 // 这次包含没有真实的文件操作,因为包含过了的文件PHP自己都知道,可以使用get_included_files()来查看,所以就不需要再lstats和open了
=====
getcwd("/usr/home/junjie2", 4096) = 18 // get current working directory (这个就是include_path 中的 "." )
lstat64("/usr/home/junjie2/./c.php", 0xbf904350) = -1 ENOENT (No such file or directory) // 没找见
lstat64("/usr/local/lib/php/c.php", 0xbf904350) = -1 ENOENT (No such file or directory) // 去include_path 中的 "/usr/local/lib/php" 下面找, 还没找见
lstat64("/usr/home/junjie2/c.php", 0xbf904350) = -1 ENOENT (No such file or directory) // 去脚本所在的目录下面找,此次查找和include_path 无关
getcwd("/usr/home/junjie2", 4096) = 18 // 这里又查一次,why?
lstat64("/usr/home/junjie2/./c.php", 0xbf9042a0) = -1 ENOENT (No such file or directory)
lstat64("/usr/local/lib/php/c.php", 0xbf9042a0) = -1 ENOENT (No such file or directory)
lstat64("/usr/home/junjie2/c.php", 0xbf9042a0) = -1 ENOENT (No such file or directory)
getcwd("/usr/home/junjie2", 4096) = 18
lstat64("/usr/home/junjie2/c.php", 0xbf906390) = -1 ENOENT (No such file or directory) // 这次查找可能是报错的时候查的
open("/usr/home/junjie2/c.php", O_RDONLY) = -1 ENOENT (No such file or directory)
结论:
1. 先查找 include_path 设置的目录; 其中的 "." 代表的不是脚本所在目录,而是脚本运行时的cwd(当前工作目录),这个目录是可以通过chdir修改的
2. 如果include_path 中查不到,则再查找脚本所在目录,这个和是否设置了include_path 无关
3. ini_set("include_path", ""); 第二个参数不能为空,为空的话就没有任何作用
关于PHP的一个小题目:
输出结果: 1234 还是 123 ?
答案: 123
如果才能达到 1234 的效果呢?
使用list、each, 代码如下:
1. 源文件需要是UTF-8编码的
2. 可以通过环境变量 DOTFONTPATH 来设置字体目录, 如果设置字体为 aaa ,则查找的字体文件为 aaa.ttf 等还有其他格式的字体文件。
3. 在windows下可以设置 DOTFONTPATH=c:\windows\fonts