vim+cscope的使用

  1. vim的准备

首先 vim --version | grep cscope,看看vim是否支持cscope,如果不支持需要重新安装vim。最简单的是在. /configure 后加上-enable-cscope,当然可以在Makefile文件(./src/Makefile)中修改(把原来的注释去掉),这是最根本的:

CONF_OPT_CSCOPE = --enable-cscope

然后安装:make && make install

阅读全文

大部分时候都能连上,但每天会有一些连接不上的情况,会报下面的错误:

PHP Fatal error: Uncaught exception ‘PDOException’ with message ‘SQLSTATE[] (null) (severity 0)’

或:

PHP Fatal error: Uncaught exception ‘PDOException’ with message ‘SQLSTATE[01002] Adaptive Server connection failed (severity 9)

PHP 5.2.9 及 PHP 5.2.11都有这个问题,Bug目前还没有解决。

阅读全文

TCP协议的三次握手过程

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

  第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

  SYN: 同步序列编号(Synchronize Sequence Numbers)

  第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

  第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

  完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念:

  未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(syn=j)开设一个条目,该条目表明服务器已收到 SYN包,并向客户发出确认,正在等待客户的确认包。这些条目所标识的连接在服务器处于Syn_RECV状态,当服务器收到客户的确认包时,删除该条目, 服务器进入ESTABLISHED状态。

阅读全文

有一个数据库chinatown做了本地发布,另一台服务器之前有做订阅,估计是订阅服务器上的订阅已经被删了,所以在删本地发布的时候怎么也删不掉。说这个发布内还有订阅,但删下面的订阅又说需连上订阅服务器才能删,连上后还是删不掉。比较头疼。

解决办法:

在发布服务器上执行:

EXEC sp_removedbreplication ‘chinatown’;

阅读全文

net-snmp可以调用外部脚本扩展功能,如:

vi /etc/snmp/snmpd.conf  
exec .1.3.6.1.4.1.2021.18 tcpCurrEstab /etc/snmp/tcpconn.sh  
exec .1.3.6.1.4.1.2021.19 tcpCurrHttp /etc/snmp/tcphttp.sh  
exec .1.3.6.1.4.1.2021.20 tcpCurrPhp-fpm /etc/snmp/tcpphp.sh  
exec .1.3.6.1.4.1.2021.21 tcpCurrMemcache /etc/snmp/tcpmemcache.sh

上面是旧版的配置,已经弃用了,新版本用:

extend .1.3.6.1.4.1.2021.18 tcpCurrEstab /etc/snmp/tcpconn.sh  
extend .1.3.6.1.4.1.2021.19 tcpCurrHttp /etc/snmp/tcphttp.sh  
extend .1.3.6.1.4.1.2021.20 tcpCurrPhp-fpm /etc/snmp/tcpphp.sh  
extend .1.3.6.1.4.1.2021.21 tcpCurrMemcache /etc/snmp/tcpmemcache.sh

阅读全文

nginx上配置正式的https证书

nginx上配置https证书与apache有些不一样,参考:http://wiki.nginx.org/NginxHttpSslModule,如果是自己建一个证书用,方法如下:

Generate Certificates

To generate dummy certficates you can do this steps:

cd /usr/local/nginx/conf
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Configure the new certificate into nginx.conf:

server {
    server_name YOUR_DOMAINNAME_HERE;
    listen 443;
    ssl on;
    ssl_certificate /usr/local/nginx/conf/server.crt;
    ssl_certificate_key /usr/local/nginx/conf/server.key;
}
Restart Nginx.

Now all ready to access using:

https://YOUR_DOMAINNAME_HERE

上面这种自己建的证书用firefox打开会有个提示:

YOUR_DOMAINNAME_HERE 使用了无效的安全证书。该证书仅对下列名称有效:

(错误码: ssl_error_bad_cert_domain)

阅读全文

作者的图片

阿辉

容器技术及容器集群等分布式系统研究

容器平台负责人

上海