- vim的准备
首先 vim --version | grep cscope
,看看vim是否支持cscope,如果不支持需要重新安装vim。最简单的是在. /configure
后加上-enable-cscope
,当然可以在Makefile文件(./src/Makefile)中修改(把原来的注释去掉),这是最根本的:
CONF_OPT_CSCOPE = --enable-cscope
然后安装:make && make install
首先 vim --version | grep cscope
,看看vim是否支持cscope,如果不支持需要重新安装vim。最简单的是在. /configure
后加上-enable-cscope
,当然可以在Makefile文件(./src/Makefile)中修改(把原来的注释去掉),这是最根本的:
CONF_OPT_CSCOPE = --enable-cscope
然后安装:make && make install
在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状态。
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
Unix信号列表
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
2) SIGTRAP 6) SIGABRT 7) SIGEMT 8) SIGFPE
3) SIGKILL 10) SIGBUS 11) SIGSEGV 12) SIGSYS
4) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGUSR1
5) SIGUSR2 18) SIGCHLD 19) SIGPWR 20) SIGWINCH
6) SIGURG 22) SIGIO 23) SIGSTOP 24) SIGTSTP
7) SIGCONT 26) SIGTTIN 27) SIGTTOU 28) SIGVTALRM
8) SIGPROF 30) SIGXCPU 31) SIGXFSZ 32) SIGWAITING
9) SIGLWP 34) SIGFREEZE 35) SIGTHAW 36) SIGCANCEL
10) SIGLOST 39) SIGRTMIN 40) SIGRTMIN+1 41) SIGRTMIN+2
11) SIGRTMIN+3 43) SIGRTMAX-3 44) SIGRTMAX-2 45) SIGRTMAX-1
12) SIGRTMAX
lsof全名list opened files,也就是列举系统中已经被打开的文件。我们都知道,linux环境中,任何事物都是文件,设备是文件,目录是文件,甚至sockets也是文 件。所以,用好lsof命令,对日常的linux管理非常有帮助。以下的说明,大部分内容来自lsof的manual文档。我所做的只是在中文翻译的基础 上,进行简单的分类说明,并列举最常用的参数。
一、输出说明
lsof是linux最常用的命令之一,通常的输出格式为:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
常见包括如下几个字段:更多的可见manual。
1、COMMAND 默认以9个字符长度显示的命令名称。可使用+c参数指定显示的宽度,若+c后跟的参数为零,则显示命令的全名
2、PID:进程的ID号
3、PPID 父进程的IP号,默认不显示,当使用-R参数可打开。
4、PGID 进程组的ID编号,默认也不会显示,当使用-g参数时可打开。
5、USER 命令的执行UID或系统中登陆的用户名称。默认显示为用户名,当使用-l参数时,可显示UID。
6、FD 是文件的File Descriptor number,或者如下的内容: (这里很难翻译对应的意思,保留英文)
vm.swappiness = 10
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_mem = 786432 1048576 1572864
net.core.wmem_max = 873200
net.core.rmem_max = 873200
net.ipv4.tcp_wmem = 8192 436600 873200
net.ipv4.tcp_rmem = 32768 436600 873200
net.core.somaxconn = 256
net.core.netdev_max_backlog = 1000
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.conf.lo.arp_ignore = 0
net.ipv4.conf.lo.arp_announce = 0
net.ipv4.conf.all.arp_ignore = 0
net.ipv4.conf.all.arp_announce = 0
#下面是iptables相关
net.ipv4.ip_conntrack_max = 6553600
net.ipv4.netfilter.ip_conntrack_max = 6553600
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 300
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
net.ipv4.neigh.default.gc_thresh1 = 10240
net.ipv4.neigh.default.gc_thresh2 = 40960
net.ipv4.neigh.default.gc_thresh3 = 81920
Generated by iptables-save v1.2.11 on Thu Nov 20 16:30:43 2008
nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [1:92]
:OUTPUT ACCEPT [1:92]
-A POSTROUTING -s 10.11.12.0/255.255.255.0 -o eth0 -j SNAT –to-source 122.227.129.72
COMMIT
# Completed on Thu Nov 20 16:30:43 2008
# Generated by iptables-save v1.2.11 on Thu Nov 20 16:30:43 2008
filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -i eth1 -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp –icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -s 10.11.12.0/24 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -p tcp -m tcp –dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -p udp -m udp –dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
COMMIT
# Completed on Thu Nov 20 16:30:43 2008