- 博客(59)
- 资源 (9)
- 收藏
- 关注
原创 git 详细教程,从头开始,看简单英文比中文好懂
Beginner PLEASE NOTE, Section I and II below, are not to be followed in order, they are 2 separate Actions (one to create a new local git repo to push to remote GIT, and the other to obtain "c
2014-07-11 14:53:44
16052
原创 配置中转linux机器,使连接该机器上的两个网络的两台主机可以互ping通
一、网络环境:网络1:主机A:eth0 ip:168.1.1.76gateway: 168.1.1.1 网络2:主机B:eth0 ip:172.18.128.23gateway:172.18.128.1 中转机:eth0 ip1:168.1.1.7 与网络1主机A互通eth1 ip2:172.
2013-09-07 09:59:45
9454
原创 linux syslog服务器配置,自动发日志到另一台日志服务器
1.客户端:168.1.20.66修改/etc/syslog.conf 添加syslog.info @168.1.80.302.日志服务器:168.1.80.30修改/etc/sysconf/syslog 修改SYSLOGD_OPTIONS为 "-r -x -m 0" #-r表示允许接收外来的消息,-x表示不解析DNS,#-m 0表示时间戳标记间隔,如果指定只
2013-09-07 09:53:59
25712
原创 字符串公共串
一、找出最长公共子序列的长度题:求字符串str1,str2的最长公共子序列的长度(可以不连续)。解:定义二元函数函数f(m,n):分别以str1[m],str2[n]结尾的连续公共子序列的长度而对于f(m,n) 有以下两种情况1.str1[m] != str2[n],则有f(m,n) = max(f(m-1,n), f(m, n-1))2.str
2013-09-06 22:44:19
1420
转载 Linux 启动详解1
在了解启动流程之前,我们应该先知道系统的几个重要脚本和配置文件,他们对应的路径为: 1. /sbin/init 2. /etc/inittab 3. /etc/rc.d/rc.sysinit 4. /etc/rc.d/rcN.d //这是几个文件夹N代表数字1,2,3,4.. 5. /etc/fstab文件介绍:1.关
2013-08-17 19:22:45
1031
原创 求一个数组中满足一定条件的两个元素的最大差值
之前在面的时候碰到一道题,要求找出一个互异数组中两个元素的最大差值。具体描述如下:有一个整数数组d[0,...,n-1],并且数组满足不存在相同的元素,要求找出1) max{d[i] - d[j]} 且 i > j;(对应实际生活中的股票买卖,找出可能的最大收益)2) max{d[i] - d[j]} 且 i 思路有很多种,用动态规划最简单,时间复杂度都是O(n),
2013-08-14 11:18:10
3233
转载 KMP算法详解及各种应用
KMP算法详解:KMP算法之所以叫做KMP算法是因为这个算法是由三个人共同提出来的,就取三个人名字的首字母作为该算法的名字。其实KMP算法与BF算法的区别就在于KMP算法巧妙的消除了指针i的回溯问题,只需确定下次匹配j的位置即可,使得问题的复杂度由O(mn)下降到O(m+n)。在KMP算法中,为了确定在匹配不成功时,下次匹配时j的位置,引入了next[]数组,next[j]的值表示P[0.
2013-08-12 20:11:20
688
转载 实战Nginx与PHP(FastCGI)的安装、配置与优化
一、什么是 FastCGIFastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同时,FastCGI也被许多脚本语言所支持,其中就有PHP。 FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP
2013-08-08 20:01:42
974
转载 fastcgi与cgi的区别
先讲下cgi:cgi在2000年或更早的时候用得比较多, 以前web服务器一般只处理静态的请求,如果碰到一个动态请求怎么办呢?web服务器会根据这次请求的内容,然后会fork一个新进程来运行外部c程序(或perl脚本...), 这个进程会把处理完的数据返回给web服务器,最后web服务器把内容发送给用户,刚才fork的进程也随之退出。 如果下次用户还请求改动态脚本,那么web服务器又再次for
2013-08-08 15:46:36
918
原创 daemon 进程为什么要fork两次,与后台运行程序区别?
daemon进程是后台守护进程,有时候也叫精灵进程(agent).linux 下server都是daemon进程。相信大部分开发人员都知道如何去写一个daemon进程。但是另一方面,大部分人不知道为什么要这么做,不少人是从某个地方copy一个函数,拿来主义。但是具体为什么这么实现,却不是很透彻。 见过一些面试官或被面试人。很多人解释daemon进程存在的理由是因为僵死进程。或
2013-08-07 14:30:02
10438
1
转载 Nginx内核参数相关的优化设定
转自:http://developer.51cto.com/art/201003/191603.htmNginx内核参数一个长时间困扰着网管员的问题,在实际的操作中各种小技巧还是需要我们引起注意。下面我们就详细的看看如何进行。Nginx内核参数在使用的时候有不少问题需要我们解决,其中在优化方面就需要我们格外的注意。在下面就是对Nginx内核参数优化的详细介绍,希望大家有所收获。
2013-08-06 10:39:12
755
转载 LVS 虚拟服务器三种模式例子
NAT模式 1.模拟环境: LVS服务器有两块网卡,连接外网(用户端)和内网(服务器),充当"交警"角色. 优点: 节省ip开销 缺点: LVS服务器负载过高,数据吞吐量降低 三台Linux虚拟机: LVS服务器(vmnet1 ip: 200.168.10.10 , vmnet2 ip: 192.168.10.1) WEB服务器1(vmnet2 ip: 192.168.
2013-08-05 23:00:28
3262
转载 LVS 三种工作模式的优缺点比较
LVS 三种工作模式的优缺点比较一、Virtual server via NAT(VS-NAT)优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,物理服务器可以分配Internet的保留私有地址,只有负载均衡器需要一个合法的IP地址。缺点:扩展性有限。当服务器节点(普通PC服务器)数据增长到20个或更多时,负载均衡器将成为整个系统的瓶颈,因为所有的请
2013-08-05 21:10:42
1231
转载 海量数据处理算法总结
1. Bloom Filter【Bloom Filter】Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在集合的快速的概率算法。Bloom Filter有可能会出现错误判断,但不会漏掉判断。也就是Bloom Filter判断元素不再集合,那肯定不在。如果判断元素存在集合中,
2013-07-30 22:55:59
1453
原创 使用openssl的md5库
在linux机器上,有一个命令可以计算出文件的md5值,那就是md5sum,如果没有的话,就需要安装RPM包:coreutils。现在我们使用openssl的库也可以方便的计算出文件的md5值。主要用到的函数是int MD5_Init(MD5_CTX *c);int MD5_Update(MD5_CTX *c, const void *data, size_t len);int M
2013-05-28 15:14:18
22842
原创 scp 断点续传
scp 是通过ssh协议传输数据,如果是想传输一个很大的数据,这几天我就遇到过,一个tar包,400G左右,通过scp拷贝时,有可能遇到服务器断电什么的悲剧问题,那么类似scp拷贝的另一个命令 rsync就可以实现意外中断后,下次继续传,命令如下:rsync -P --rsh=ssh home.tar 192.168.205.34:/home/home.tar-P: 是包含了 “–part
2013-05-22 16:14:55
50748
5
转载 一份非常内行的Linux LVM HOWTO
1. 绪论 欢迎你,亲爱的读者。 写这个文档的目的是为了告诉你什么是LVM,它怎样工作,你怎样运用它使你的生活变得更容易。虽然有一份LVM FAQ,但仍是德文的,它是从不同的角度来描写的。它是一份“真的”HOWTO,在传授理解(有希望的)的时候也是非常内行的。 我要说清楚我不是一个Linux逻辑卷管理器(Logical Volume Manager)的作者。我向那些作者表示敬意
2013-05-21 15:42:36
1553
原创 linux中getmntent setmntent endmntent 用法例子
mntent 结构是在 中定义,如下: struct mntent { char *mnt_fsname; /* name of mounted file system */ char *mnt_dir; /* file system path
2013-05-14 14:44:13
10013
原创 linux大端,小端,网络字节序转换之可移植性代码
我们有时候经常被大端,小端,网络字节序搞得很迷糊,本文理清一些概念,并给出可移植的代码。我们的主机字节序,即我们的机器存放内存里的顺序,有两种,一种是大端,另一种是小端,大部分的系统都是小端。在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节,比如一个unsigned short的变量的值为十六进制"0x0a 0x0b"对应的十进制2571,这个变量跨了1个字节
2013-04-19 16:00:07
6131
原创 net-snmp agent开发详解,非常简单
转载请标明出处 原文地址:http://blog.youkuaiyun.com/hepeng597/article/details/8782868花了一两天时间测试和整理一下。用net-snmp扩展MIB库,实现方法可归结为四种:1)一是静态库方式,通过修改配置头文件,在相应地方包含新引入的mib模块的.c和.h文件,然后重新编译库文件和扩展代码;这种方式不够灵活,每次修改扩展的MIB后,
2013-04-11 15:51:10
112549
7
原创 如何自动输入密码ssh连接到其他机器
想在shell脚本里ssh连接到另外一台服务器后执行一些命令,但是不希望通过交互方式输入登录密码。主要的解决方法有三种:1. 生成ssh公钥,建立和对方机器的信任关系;2. 使用expect脚本;3. 使用sshpass。这里介绍一下sshpass相关内容下载并安装sshpass):# tar zxvf sshpass-xxxx.tar.
2013-03-27 18:12:23
16560
1
原创 根据成员变量的地址推算出结构体变量的地址
在linux当中对此有一个很好的宏可以使用,叫做 container_of, 放在 linux/kernel.h当中。它的定义如下所示:/*** container_of - cast a member of a structure out to the containing structure** @ptr: the pointer to the member.* @type: th
2013-03-13 16:42:47
1170
转载 linux 修改时间 date
修改linux的时间可以使用date指令 修改日期: 时间设定成2009年5月10日的命令如下: #date -s 05/10/2009 修改时间: 将系统时间设定成上午10点18分0秒的命令如下。 #date -s 10:18:00 修改时区: 找到相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai替换当前的/etc/l
2013-01-31 14:36:22
612
原创 编译linux内核tips
TIPS:1.下载源码解压后,先make menuconfig,在GUI界面根据需要生成对应.config的配置文件2.有了.config的配置文件后,可以make bzImage, 会在/boot目录中生成一些重要的文件,比如:initrdfsxxx.img,vmlinuzxxx, 这两个文件很重要,是在开机启动时会加载到内存的小文件系统,如果这两个文件不对,或者说.config文件没有
2013-01-25 16:32:12
2191
原创 iptables用法初解
一、四表五链之间的关系4个表:filter,nat,mangle,raw,默认表是filter(没有指定表的时候就是filter表)。表的处理优先级:raw>mangle>nat>filter。filter:一般的过滤功能nat:用于nat功能(端口映射,地址映射,中转IP等)mangle:用于对特定数据包的修改raw:有限级最高,设置raw时一般是为了
2013-01-23 14:03:28
14849
转载 Linux 启动详解2
机器加电启动后,BIOS开始检测参数,如内存的大小,日期和时间,磁盘设备以及这些磁盘设备用来引导的顺序,通常情况下,BIOS都是被配置成首先检查软驱或者光驱(或两者都检查),然后再尝试从硬盘引导。如果在这些可移动的设备中,没有找到可引导的介质,那么BIOS通常是转向第一块硬盘最初的几个扇区,寻找用于装载操作系统的指令。装载操作系统的这个程序就是boot loader.里面的boot
2013-01-23 13:28:38
1044
转载 rhel6系统启动过程故障排错处理
http://chaorenyong.blog.51cto.com/2163445/1048194解析Linux系统开关机流程,让你游刃有余的掌握在系统启动过程过的任何错误,让你真正把握整个Linux系统,让你成为系统管理员中故障排错解除的佼佼者。掌握了这门技术的管理,能在短时间内判断出系统故障产生的原理,从而快速找到故障点,并轻松解决,为企业节省大量的人力和物力,减少大量不必要损失。
2013-01-04 12:30:20
3405
转载 secureCRT 显示乱码问题(总结)
1:最简单的方法是直接改 Session Option→选字体(新宋体)→再选Character encoding(选UTF-8) 然后再修改远程linux机器的配置 vi /etc/sysconfig/i18n 把LANG改成支持UTF-8的字符集 如:LANG=”zh_CN.UTF-8″ 2:如果再不行,可以试试这样 导出 /etc/sys
2012-12-18 16:57:40
845
转载 Linux 启动详解
机器加电启动后,BIOS开始检测参数,如内存的大小,日期和时间,磁盘设备以及这些磁盘设备用来引导的顺序,通常情况下,BIOS都是被配置成首先检查软驱或者光驱(或两者都检查),然后再尝试从硬盘引导。如果在这些可移动的设备中,没有找到可引导的介质,那么BIOS通常是转向第一块硬盘最初的几个扇区,寻找用于装载操作系统的指令。装载操作系统的这个程序就是boot loader.里面的boot loader通
2012-11-27 17:16:52
1114
转载 shell 多行注释
由于Shell不支持直接多行注释,总结了以下Shell注释多行的变通方法 一、通过Here Documents和:实现 1、最简单方法 :<<BLOCK ....注释内容 BLOCK 把输入重定义到前面的命令,但是:是空命令,所以就相当于注释了。 如果注释中有反引号的命令就会报错。反引号部分没被注释掉,例如ab=`ls -l abc`就不会被注释掉。 2、解决注释
2012-11-27 11:19:41
9314
原创 tr命令常用例子
一、首先介绍下代替符号[:lower:]所有的小写字母[:upper:]所有的大写字母[:alnum:] 表示所有的字母和数字[:alpha:] 表示所有的字母[:blank:] 表示所有空格[:digit:] 表示所有数字[:punct:] 表示标点符号[:graph:] 表示所有可打印字符,但不包括空格[:print:
2012-11-15 17:06:46
1137
转载 vim 缩进
vim tab变空格对于使用vim的程序员来说,shiftwidth,tabstop,softtabstop绝对是经常接触的三个缩进因素。能否有方便美观的,整体化的缩进,主要是由他们相互间的配合决定。在经过一段时间试用后,总结一下我的设置经验。1 shiftwidth:这个是用于程序中自动缩进所使用的空白长度指示的。一般来说为了保持程序的美观,和下面的参数最好一致。同时
2012-11-15 16:41:07
1362
原创 shell 间接变量引用的问题
1.感叹号的使用aaa=123bbb=aaaecho $bbbecho ${!bbb}输出结果:aaa123可见,感叹号是可以引用间接变量的值2.eval的使用aaa=123bbb=aaaecho $bbbeval ccc=\${$bbb}echo $ccc输出结果:aaa123问题:当遇到星号后,间接引用与编程者期
2012-10-10 18:56:37
6240
原创 shell if判断常用参数
Grammar:if 条件 # 条件为真,则条件返回0,进入then语句, 如果条件是函数,那么函数返回0则进入then语句then commandelse # 或者 elif 条件commandfiFast IF example:执行命令[ $? != 0 ] && exit -1 #如果左边的表达式为真则执行右边的语句Tips:
2012-09-30 09:04:01
889
原创 shell中数组扩展技巧及实例
1、申明数组例一:a=(111 222) #一对括表示是数组,数组元素用“空格“符号分割开。echo ${a[0]} #数组下标从0开始echo $a #数组也是指针形似,数组名称相当于一个指针,指向第一个数组元素输出:111111 例二:a=([0]=111 [1]=222)例三:a[0]=111a[1
2012-09-10 18:08:53
1189
转载 shell基本计算、逻辑运算、位运算详解
http://blog.pureisle.net/archives/1352.htmlShell 提供大量的基本运算操作,在脚本中非常有用。Shell 对您提供的算术表达式求值,执行运算展开式,此时使用得出的结果替换表达式。以下面的格式提供运算表达式:$(( expression ))$ echo $((5*(3+3)))30$ result = $(($myvar-1
2012-09-05 16:32:08
2127
原创 sed实例收集
一、元字符集 1)^锚定行的开始 如:/^sed/匹配所有以sed开头的行。 2)$ 锚定行的结束 如:/sed$/匹配所有以sed结尾的行。 3). 匹配一个非换行符的字符 如:/s.d/匹配s后接一个任意字符,然后是d。 4)* 匹配零或多个字符 如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。 5)[] 匹配一个指定
2012-08-29 14:10:36
6846
原创 盐焗鸡 电压力锅版
主料:鸡1只(我是一半鸡用电压力锅褒汤了,所以我只剩下一半鸡)调料:胡子酒,盐,味精,生抽,老抽,胡椒粉,辣椒面,鸡精,十三香,生姜,葱头(只要能想到的都根据自己喜好放)步骤:1.将鸡冲洗干净,沥干水分,斩去鸡爪,头,鸡屁股2.将适量的胡子酒按摩鸡,放入盐,味精,生抽,老抽,胡椒粉,辣椒面,鸡精,十三香,均匀按摩鸡五分钟左右,放入冰箱等两三小时入味3.将生姜切成薄片,并用生
2012-08-19 09:18:49
1487
原创 xmlstarlet toolkit 脚本操作xml的好工具, 用法心得
在linux终端或者secureCRT ssh上去,或者是shell脚本可以直接调用xmlstarlet命令操作,解析xml很方便,由于是工作上用到的东东,查了相关的资料,也遇到过一些问题,所以在解决后记录备忘,这里只列出一些常用的命令和一些文档里没有提到的命令,如需文档,请参考:http://xmlstar.sourceforge.net/doc/UG/xmlstarlet-ug.html例
2012-08-18 21:52:17
6695
原创 蛋挞飞饼版
用料 思念原味飞饼 2张(一包一般有五张,大概8.7元左右) 淡奶油 130克(没有可以省略)牛奶 120克(一定要有,从超市买1.3元一小包的甜牛奶就行)蛋黄 1到2个普通面粉 7克玉米淀粉 4克(没有可以省略)葡萄干 适量(没有可以省略)1.做法 将二张飞饼重叠放在一起2.飞饼表面盖着油纸用擀面杖擀几下,擀成稍大的饼形3.将
2012-08-17 22:10:19
1871
fence 2.01 破解版 适用于win7
2014-09-24
Linux C函数库参考手册
2010-07-30
RTSP中文版 实时流协议 电子书
2010-07-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人