常用命令
locate xxx; find / -name xxx
mount /dev/sdb /home/zhouhb/
lsof -i | grep 13352
grep “PES2TS” /home/zhouhb_work_file/TS_file/ -r -n 文本搜索命令
yum install samba*
zypper search xxx; zypper install xxx;
iostat -d -m 5 10000
netstat -ant |grep 8445
scp ./libEs.so [email protected]:/home
route add default gw 192.168.9.1 \r
关于抓包
指定网卡,指定IP,指定端口,写入cap文件
tcpdump -i eth1 host 192.168.1.1 and port 6069 -w a.cap
指定协议
tcpdump -i eth1 arp
tcpdump -i eth1 ip
tcpdump -i eth1 tcp
tcpdump -i eth1 udp
tcpdump -i eth1 rtsp
关于防火墙;
service iptables stop
iptables -L –查看屏敝情况
iptables -F –取消所以的屏敝
Wireshark的过滤规则
1.过滤IP,如来源IP或者目标IP等于某个IP
ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107
或者ip.addr eq 192.168.1.107
2.过滤端口
例子:
tcp.port == 80
tcp.port eq 2722
tcp.port eq 80 or udp.port eq 80
tcp.dstport == 80 // 只显tcp协议的目标端口80
tcp.srcport == 80 // 只显tcp协议的来源端口80
udp.port eq 15000
过滤端口范围
tcp.port >= 1 and tcp.port <= 80
3.过滤协议
例子:
tcp
udp
arp
icmp
http
smtp
ftp
dns
msnms
ip
ssl
oicq
bootp
4.过滤MAC
太以网头过滤
eth.dst == A0:00:00:04:C5:84 // 过滤目标mac
eth.src eq A0:00:00:04:C5:84 // 过滤来源mac
5.包长度过滤
例子:
udp.length == 26 这个长度是指udp本身固定长度8加上udp下面那块数据包之和
tcp.len >= 7 指的是ip数据包(tcp下面那块数据),不包括tcp本身
ip.len == 94 除了以太网头固定长度14,其它都算是ip.len,即从ip本身到最后
frame.len == 119 整个数据包长度,从eth开始到最后
6.http模式过滤
例子:
http.request.method == “GET”
http.request.method == “POST”
关于makefile和脚本
定义路径
INSTALLDIR = /home/zhouhb/work/nfs_ipnc_4.0/opt/
判断语句
ifeq ( (VERBOSE),true)MAKE:= (MAKE)
else
MAKE := $(MAKE) –no-print-directory
endif
定义一些变量(编译工具)
CC = (PREFIX)gccCXX= (PREFIX)g++
LD = (PREFIX)ldAR= (PREFIX)ar
STRIP = $(PREFIX)strip
声明一些东西
export PREFIX CC CXX LD AR STRIP CCDEP CFLGAS LDFLAGS RANLIB LIBS_HOME
打印一些东西
@echo “Please run < make BUILD_TARTGET= > if you have changed anything!!!!”
指定链接的动态库和静态库
LDFLAGS += -lfileServer -luuid -lmjson -llog4cplus -ljrtp -ludt4 -linilib
指定生成目标
TARGET := lib (notdir (shell pwd)).a
基本的脚步指令
cp (TARGETNAME) (APPSDIR)/$(TARGET_NAME)
指定编译
all : objdirs (TARGETNAME) (OBJS) : (OBJSPATH)/ (CURPATH)/%.cpp
$(COMPILE)
(TARGETNAME): (OBJS)
@echo Make app @from ^ …
(CXX)−o (TARGET_NAME) (OBJS) (LDFLAGS)
指定clean
clean :
rm -f (OBJSPATH)/∗.orm−f (OBJSPATH)/*.d
rm -f (OBJS)rm−f (DEPS)
rm -f $(TARGET)
rm -f ./app/disk_test
指定头文件路径
INCDIRS += -I$(PUBLIC_LIB_INC_DIRS)
关于GDB和core
GDB使用:
(gdb) break 16 <——————– 设置断点,在源程序第16行处。
Breakpoint 1 at 0x8048496: file tst.c, line 16.
(gdb) break func <——————– 设置断点,在函数func()入口处。
Breakpoint 2 at 0x8048456: file tst.c, line 5.
(gdb) info break <——————– 查看断点信息。
(gdb) r <——————— 运行程序,run命令简写
(gdb) n <——————— 单条语句执行,next命令简写。
(gdb) c <——————— 继续运行程序,continue命令简写。
(gdb) bt <——————— 查看函数堆栈。
(gdb) finish <——————— 退出函数。
(gdb) info threads
(gdb) thread 4
在下列条件下不产生core文件:
( a )进程是设置-用户-ID,而且当前用户并非程序文件的所有者;
( b )进程是设置-组-ID,而且当前用户并非该程序文件的组所有者;
a,b可以通过设置/proc/sys/kernel/suid_dumpable来改变,这样suid的也可以产生core文件
( c )用户没有写当前工作目录的许可权;
( d )文件太大。core文件的许可权(假定该文件在此之前并不存在)通常是用户读/写,组读和其他读。
ulimit -c 1000
core没有产生的原因:
1)没有足够的空间
2)设置一个进程的当前工作目录的地方没有写权限
ulimit -c 0 不产生core文件
ulimit -c unlimited 不限制core文件大小
出问题的地方
视频的花屏问题(视频播放花屏,一开始播花屏);
延时问题(包含信令控制);
拖动问题(进度条问题);
介绍自己:
工作经历:
IPC,DVR,接入服务器,录像服务器,流媒体服务器。
一直从事一线的软件开发工作。
流媒体技术,存储技术,服务器开发技术。
熟悉HTTP,rtmp,RTSP,rtp等流媒体传输和控制协议。
熟悉存储管理技术,磁盘预分配技术;
能力:
有能力开发IPC,DVR,各种应用服务器,设计平台协议,项目管理。
其他的知识点
关于基本的编程;
关于线程安全;
关于内存的使用思考;
关于流媒体的知识;
关于流服务器的思考;
关于各种协议的知识;
关于整个平台框架协议;