November 19, 2010
shell中的test表达式
"摘自:UNIX Shell编程24学时编程\n10.1.2 使用test\n更常见的情况是,提供给if语句的清单是一个或更多个test命令,它们通过调用test命令而被激活,语法如下:\ntest expression\n这里,expression为test命令构造的表达式,该表达式的构造使用了特殊选项之一.在计算完表达式的值后,test命令或者返回0(真)或者返回1(假).\n可用”[“命令对test命令进行缩写:\n[ expression ]\n这里expression是test命令可以理解的任何有效表达式,该简化格式将是读者可能会踫见的最常用格式.\ntest可理解的表达式类型分为三类:\n文件测试. 字符串比较. 数字比较.\n读者将逐步学业习这三类,另外,还会学习到复合表达式.\n注意:在使用”[“简写test时,左中括号后面的空格和右括号前面的空格是必需的,如果没有空格,Shell不可能辨别表达式何时开始何时结束.\n选项\n描述\n-b file\n若文件存在且是一个块特殊文件,则为真\n-c file\n若文件存在且是一个字符特殊文件,则为真\n-d file\n若文件存在且是一个目录,则为真\n-e …"
November 19, 2010
Shell中变量基础
"shell中的只读变量:使用readonly关键字,后面加上变量名即可,如\n#name=’sxf’\n#readonly name\n即可.如果后面修改name的值,如\n#name=’tom’\n会提示\n"-bash: name: readonly variable"\n错误信息.\n在shell中删除变量只要用\nunset variable\n即可.但不能删除只读变量.\nshell中环境变量分三种:局部变量,环境变量,Shell变量\n局部变量(local variable)是只在当前shell实例中存在的变量,而由其他Shel启动的程序不能使用该变量.\n环境变量(environment variable)是Shell的任何子进程都能使用的变量,许多程序要正确运行都需要使用环境变量.通常Shell脚本只定义程序运行时所需要的环境变量.\nShell变量(Shell variable)是Shell变量的特殊变量,也是Shell正确运行所必需的,这些变量有些是环境变量而有些是局部变量.\n通常,为清楚地表示该变量是环境变量,一般将赋值语句和导出语句写在同一行,这可以帮助下一个维护该脚本的程序员快速了解这些 …"
November 19, 2010
centos 使用rz指令
"在linux下安装rz很方便,使用\nyum install lrzsz就可以安装,正常使用rz和sz命令。**下面对sz和rz命令的一点介绍:**一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地;**与ssh有关的两个命令可以提供很方便的操作:**sz:将选定的文件发送(send)到本地机器,即下载rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive),即上传\n发送文件到客户端:sz filename 第一次使用sz,会提示你放置的目录。\nzmodem接收可以自行启动.\n从客户端上传文件到linux服务端:\n只要服务端执行 : rz\n然后在 SecureCRT 里选文件发送,协议 zmodem\n简单吧,如果你以前一直使用ssh,而又没有对外开放ftp服务,你就直接使用这种方式来传输你的文件 。"
November 18, 2010
DDOS攻击分析与预防专题
"DDOS是英文Distributed Denial of Service的缩写,意即”分布式拒绝服务”,DDOS的中文名叫分布式拒绝服务攻击,俗称洪水攻击。\nDDoS攻击概念 DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式。单一的DoS攻击一般是采用一对一方式的,当攻击目标CPU速度低、内存小或者网络带宽小等等各项性能指标不高它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了 – 目标对恶意攻击包的”消化能力”加强了不少,例如你的攻击软件每秒钟可以发送3,000个攻击包,但我的主机与网络带宽每秒钟可以处理10,000个攻击包,这样一来攻击就不会产生什么效果。\n这时候分布式的拒绝服务攻击手段(DDoS)就应运而生了。你理解了DoS攻击的话,它的原理就很简单。如果说计算机与网络的处理能力加大了10倍,用一台攻击机来攻击不再能起作用的话,攻击者使用10台攻击机同时攻击呢?用100台呢?DDoS就是利用更多的傀儡机来发起进攻,以比从前更大的规模来进攻受害者。 高速广泛连接的网络给大家 …"
November 18, 2010
FreeBSD系统下普通用户切换root用户,提示su:sorry的解决办法
"FreeBSD系统下su:sorry的解决办法 在FreeBSD上要使用su命令成为root用户,不但要知道root的口令,还需要经过特别设置,否则就不能成功使用这个命令。这是因为 FreeBSD对执行su命令的用户进行了更严格的限制,能使用su命令的用户必须属于wheel组(root的基本属组,组ID为0),否则就不能通过 这个命令成为root用户。因此需要编辑组设置文件/etc/group,将需要超级用户权力的管理成员加入到wheel组中。 可以使用如下命令给普通用户su – root的权力:\npw groupmod wheel -m pw user mod -g wheel\n或者直接修改/etc/group文件,把相应的用户加到wheell组就可以\nwheel:*:0:root,\nFreeBSD系统下默认是不允许root用户直接通过ssh连接到服务器的,在安装FreeBSD系统时要创建一个额外的用户,切忌一定要把这个用户加入到wheel组中(如果不加入到这个组中的话就无法ssh),也可以安装完系统后创建用户,并把这个用户加入wheel组。"
November 18, 2010
杨卫华:新浪微博的架构发展历程
"新浪科技讯 11月16日下午消息,由 新浪微博( http://t.sina.com.cn)(http://t.sina.com.cn)主办的中国首届微博开发者大会在北京举行,这是国内微博行业的首场技术盛宴。作为国内微博市场的绝对领军者,新浪微博将在此次大会上公布一系列针对开发者的扶持政策,以期与第三方开发者联手推动微博行业的整体发展。图为微博平台首席架构师杨卫华演讲。\n以下为演讲实录:\n大家下午好,在座的大部分都是技术开发者,技术开发者往往对微博这个产品非常关心。最晚的一次,是12点多收到一个邮件说想了解一下微博底层是 怎么构架的。很多技术人员对微博的构架非常感兴趣,就是一个明星他有300万粉丝,这个技术怎么来实现?今天在这里跟大家分享一下微博的底层机构,让大家 对微博的底层技术有更好的了解。另外不管是做客户端、1.0、2.0、论坛、博客都要考虑架构的问题,架构实际上是有一些共性的。今天我通过讲解微博里面 的一些架构,分析一下架构里面哪些共性大家可以参考。\n首先给大家介绍一下微博架构发展的历程。新浪微博在短短一年时间内从零发展到五千万用户,我们的基层架构也发展了几个版本。第一版就是是 …"
November 18, 2010
PHP autoload 机制
"1**、简介******\nPHP5中引入了类的自动装载(autoload)机制。autoload机制可以使得PHP程序有可能在使用类时才自动包含类文件,而不是一开始就将所有的类文件include进来,这种机制也称为lazy loading。\n例子:****\n/* autoload.php */ function __autoload($classname) { require_once ($classname . “class.php”); } $person = new Person(”Altair”, 6); var_dump ($person);\n通常PHP5在使用一个类时,如果发现这个类没有加载,就会自动运行__autoload()函数,在这个函数中我们可以加载需要使用的类。\nautoload至少要做三件事情,第一件事是根据类名确定类文件名,第二件事是确定类文件所在的磁盘路径(在我们的例子是最简单的情况,类与调用它们的 PHP程序文件在同一个文件夹下),第三件事是将类从磁盘文件中加载到系统中。第三步最简单,只需要使用include/require即可。要实现第一 步,第二步的功 …"
November 18, 2010
linux的head命令及tail命令介绍
"当需要查看一个文本文件的头部或尾部时,head 命令及tail 命令可以非常方便的完成该操作。head 命令用于查看一个文本文件的开头部分;而tail 命令则用于显示文本文件的末尾几行。这两个命令举例如下: head example.txt 显示文件 example.txt 的前十行内容; head -n 20 example.txt 显示文件 example.txt 的前二十行内容; tail example.txt 显示文件 example.txt 的后十行内容; tail -n 20 example.txt 显示文件 example.txt 的后二十行内容; tail -f example.txt 显示文件 example.txt 的后十行内容并在文件内容增加后,自动显示新增的文件内容。 注意: 最后一条命令非常有用,尤其在监控日志文件时,可以在屏幕上一直显示新增的日志信息。"
November 17, 2010
牛人写的. 高级PHP应用程序漏洞审核技术
"一个安全界的牛人写的. 很不错.. [目录]\n前言 传统的代码审计技术 PHP版本与应用代码审计 其他的因素与应用代码审计 扩展我们的字典 5.1 变量本身的key 5.2 变量覆盖 5.2.1 遍历初始化变量 5.2.2 parse_str()变量覆盖漏洞 5.2.3 import_request_variables()变量覆盖漏洞 5.2.4 PHP5 Globals 5.3 magic_quotes_gpc与代码安全 5.3.1 什么是magic_quotes_gpc 5.3.2 哪些地方没有魔术引号的保护 5.3.3 变量的编码与解码 5.3.4 二次攻击 5.3.5 魔术引号带来的新的安全问题 5.3.6 变量key与魔术引号 5.4 代码注射 5.4.1 PHP中可能导致代码注射的函数 5.4.2 变量函数与双引号 5.5 PHP自身函数漏洞及缺陷 5.5.1 PHP函数的溢出漏洞 5.5.2 PHP函数的其他漏洞 5.5.3 session_destroy()删除文件漏洞 5.5.4 随机函数 5.6 特殊字符 5.6.1 截断 5.6.1.1 include …"
November 17, 2010
数据库主键全局唯一方案
"现在通过数据的水平切分(sharding)来实现数据库 Scale Out 的解决方案受到了越来越多人的青睐,但是在切分过程中可能遇到的问题也肯定不在少数,如切分规则的设计,切分后的访问路由,切分后的主键的全局唯一等等。\n这里我主要列举几个可以使用在 MySQL 数据库主键全局唯一方案及其优劣,供大家参考:\n通过应用程序生成一个GUID,然后和数据一起插入切分后的集群。优点是维护简单,实现也容易。缺点是应用的计算成本较大,且GUID比较常,占用数据库存储空间较大,涉及到应用的开发。 说明:主要优势是简单,缺点是浪费存储空间,GUID:32字节,100W记录,多32兆,如果是int,4字节,会少28M。如果有外键关联,会浪费更多。\n通过独立的应用程序事先在数据库中生成一系列唯一的 ID,各应用程序通过接口或者自己去读取再和数据一起插入到切分后的集群中。优点是全局唯一主键简单,维护相对容易。缺点是实现复杂,需要应用开发。 说明:ID表要频繁查和频繁更新,插入数据时,影响性能。\n通过中心数据库服务器利用数据库自身的自增类型(如 MySQL的 auto_increment 字段),或者自增对 …"