2009年3月31日星期二

关于UnixODBC的小知识

详细请看http://en.wikipedia.org/wiki/Open_Database_Connectivity
我摘出来翻译了一下

UnixODBC
Main article: unixODBC

The unixODBC project — headed, maintained and supported by Easysoft Director Nick Gorham — has become[update] the most common driver-manager for non-Microsoft Windows platforms (and for one Microsoft platform, Interix). It offered full ODBC3 support and Unicode in advance of its competitors. Most Linux distributions as of 2006[update] ship it, including Red Hat, Mandriva and Gentoo. Several vendors of commercial databases, including IBM (DB2, Informix), Oracle and SAP (Ingres) use it for their own drivers. It includes GUI support for both KDE and GNOME. Many open source projects — including OpenOffice.org and Glade — also make use of it. It builds on any platform that supports the GNU autoconf tools (in other words, most of them). For licensing, UnixODBC uses the LGPL and the GPL.
unixODBC项目 --发起,维护和支持者是 Easysoft 的 Nick Gorham
已经成为非微软平台的最通用的驱动管理
提供全部 ODBC3 支持 和 在对unicode的支持上优于他的竞争对手(也即是微软) .
绝大多数linux的发行版本从2006年以后开始使用它(ship it), 包括Redhat, Mandriva和Gentoo.
几家商业数据库厂家,包括IBM(DB2, Informix), Oracle 和 SAP 都使用它作为他们自己的启动。
它也提供了为KDE 和 GNOME 环境图形界面的支持。
许多开源项目--包括OpenOffice.org和 Glade 也在使用它。
可以在支持GNU autoconf 工具的任何操作系统平台上建立起来。
对于许可, UnixODBC 使用 LGPL 和 GPL。

2009年3月30日星期一

ejabberd 2.0.4 Installation and Operation Guide Chapter 5 Securing ejabberd 安全化ejabberd

secure --v 使安全 --金山词霸
5.1 Firewall Settings 防火墙设置

You need to take the following TCP ports in mind when configuring your firewall:
你需要在配置你的防火墙的时候注意一下tcp端口:

Port Description
5222 Standard port for Jabber/XMPP client connections, plain or STARTTLS.
Jabber/XMPP客户连接的标准接口,明文或 STARTTLS(现在还不知道什么意思)
5223 Standard port for Jabber client connections using the old SSL method.
使用老式的SSL方式连接的Jabber客户端连接的标准端口
5269 Standard port for Jabber/XMPP server connections.
Jabber/XMPP服务器连接的标准端口-(是不是就是s2s的port?)
4369 Port used by EPMD for communication between Erlang nodes.
Erlang节点之间使用(EPMD)连接的端口,在cluster中用到了,
port range Used for connections between Erlang nodes. This range is configurable.
端口范文 在Erlang节点之间连接的端口范围,这个范围是可配置的
5.2 epmd

epmd (Erlang Port Mapper Daemon) is a small name server included in Erlang/OTP and used by Erlang programs when establishing distributed Erlang communications. ejabberd needs epmd to use ejabberdctl and also when clustering ejabberd nodes. This small program is automatically started by Erlang, and is never stopped. If ejabberd is stopped, and there aren't any other Erlang programs running in the system, you can safely stop epmd if you want.
epmd是一个小型的在Erlang/OTP中包含的名字服务器(就是dnsserver),目的为建立分布式的Erlang程序提供Erlang通讯。
ejabberd中的ejabberctl(主要的配置程序,脚本)用到,当然cluster模式的ejabberd nodes,也用到了。
这个小程序是被Erlang自动启动的,并且不会停下来(管杀不管埋?)
如果ejabberd已经停了,并且运行环境中没有其他的erlang programs运行,你可以放心的停了它(epmd)
--看样子,epmd是otp环境的功能,没事别管它,是不是可以这样理解?

ejabberd runs inside an Erlang node. To communicate with ejabberd, the script ejabberdctl starts a new Erlang node and connects to the Erlang node that holds ejabberd. In order for this communication to work, epmd must be running and listening for name requests in the port 4369. You should block the port 4369 in the firewall, so only the programs in your machine can access it.

ejabberd在一个Erlang node内部运行。
为了与ejabberd通讯, ejabberctl 脚本启动一个新的Erlang 节点并且连接到包含ejabberd的Erlang节点( the Erlang node that holds ejabberd)
为了让这次通讯运行起来(work), epmd必须跑起来并且在端口4369上监听“名字请求(name requests)"。
这里要注意了,你不能将4369端口放出到公网,这个port仅供你的程序所在的机器之间访问它。




If you build a cluster of several ejabberd instances, each ejabberd instance is called an ejabberd node. Those ejabberd nodes use a special Erlang communication method to build the cluster, and EPMD is again needed listening in the port 4369. So, if you plan to build a cluster of ejabberd nodes you must open the port 4369 for the machines involved in the cluster. Remember to block the port so Internet doesn't have access to it.

如果你建立了一个含几个节点的ejabberd实例, 每个ejabberd实例会被ejabber节点调用。
这些ejabberd 节点使用一种特别的Erlang 通讯方法建立cluster, EPMD被用来监听4369.(这里用了个again,莫非强调EPMD的作用很重要哦!)。
果然,如果你计划建立一个ejabbered 节点的cluster, 你必须在cluster中的机器之间开放4369端口。
记得,别将这个端口开放给internet。(应该是安全的要求)

Once an Erlang node solved the node name of another Erlang node using EPMD and port 4369, the nodes communicate directly. The ports used in this case are random. You can limit the range of ports when starting Erlang with a command-line parameter, for example:
一旦Erlang节点完成了对另一个节点名字的解析,当然是通过EPMD还有4369, 那么节点间就可以直接通讯了。
(应该是讲,完成名字解析后,节点之间通讯时)在这种情况下端口的使用是随机的。你可以在开始Erlang时(命令行参数)限制端口的(活动)范围,例如:

erl ... -kernel inet_dist_listen_min 4370 inet_dist_listen_max 4375
--最小 4370, 最大 4375
5.3 Erlang Cookie

The Erlang cookie is a string with numbers and letters. An Erlang node reads the cookie at startup from the command-line parameter -setcookie. If not indicated, the cookie is read from the cookie file $HOME/.erlang.cookie. If this file does not exist, it is created immediately with a random cookie. Two Erlang nodes communicate only if they have the same cookie. Setting a cookie on the Erlang node allows you to structure your Erlang network and define which nodes are allowed to connect to which.
Erlang cookie是一个包含数字和字母的字串.
Erlang节点根据启动时在命令行参数 -setcookie的设定来读取cookie
如果没有提示的话,cookie将从$HOME/.erlang.cookie的cookie文件中读取。
当这个文件不存在,他会立即创建一个随机的cookie.
两个erlang节点只有在他们cookie相同的条件下才能进行通讯。
通过设定Erlang节点上的cookie可以让你建造你的Erlang网络,定义那些节点可以互联互通。

Thanks to Erlang cookies, you can prevent access to the Erlang node by mistake, for example when there are several Erlang nodes running different programs in the same machine.
应该感谢Erlang cookies, 你可以阻止犯错误的Erlang节点的访问, 例如: 当几个节点运行不同的程序(应用、功能)在相同的一部机器


Setting a secret cookie is a simple method to difficult unauthorized access to your Erlang node. However, the cookie system is not ultimately effective to prevent unauthorized access or intrusion to an Erlang node. The communication between Erlang nodes are not encrypted, so the cookie could be read sniffing the traffic on the network. The recommended way to secure the Erlang node is to block the port 4369.
设定一个保密的cookie是限制非授权访问你的Erlang节点的一个简单办法。
可是,cookie系统并不是阻止非授权访问或入侵一个Erlang节点的有效办法。
Erlang节点之间的通讯没有加密,所以这个cookie可以通过sniffing网路得到。
所以建议还是通过屏蔽4369到(公网),来保证Eralng node.

5.4 Erlang Node Name

An Erlang node may have a node name. The name can be short (if indicated with the command-line parameter -sname) or long (if indicated with the parameter -name). Starting an Erlang node with -sname limits the communication between Erlang nodes to the LAN.
一个Erlang节点有一个节点名字。
这个名字可短可长(如果用-sname来指定那就是短, 如果是-name 那就是长的)
在局域网中,一开始使用-sname来限制通讯

Using the option -sname instead of -name is a simple method to difficult unauthorized access to your Erlang node. However, it is not ultimately effective to prevent access to the Erlang node, because it may be possible to fake the fact that you are on another network using a modified version of Erlang epmd. The recommended way to secure the Erlang node is to block the port 4369.
使用-sname替换-name是一个简单的方法用来限制非授权访问。
但是它不是最终有效的阻止Erlang 节点的访问, 因为它可以伪装一个实际中的另一个节点,使用修改过的Erlang epmd.
所以建议还是通过屏蔽4369到(公网),来保证Eralng 节点.

5.5 Securing Sensible Files

ejabberd stores sensible data in the file system either in plain text or binary files. The file system permissions should be set to only allow the proper user to read, write and execute those files and directories.
ejabberd存储敏感数据在一个文件系统中明文或二进制格式。
文件系统授权只允许恰当的用户读,写,执行相应的文件或目录

ejabberd configuration file: /etc/ejabberd/ejabberd.cfg
ejabberd的配置文件: /etc/ejabberd/ejabberd.cfg
Contains the JID of administrators and passwords of external components. The backup files probably contain also this information, so it is preferable to secure the whole /etc/ejabberd/ directory.
包含管理员JID, 密码, 外部模块.
最好备份整个/etc/ejabberd目录
ejabberd service log: /var/log/ejabberd/ejabberd.log
ejabberd服务的日志: /var/log/ejabberd/ejabberd.log
Contains IP addresses of clients. If the loglevel is set to 5, it contains whole conversations and passwords. If a logrotate system is used, there may be several log files with similar information, so it is preferable to secure the whole /var/log/ejabberd/ directory.
包含用户的ip地址.
如果log记录级别为5, 它包含整个会话和密码. 如果logrotate使用, 会有几个类似日志文件含有类似的信息,最好保证整个/var/log/ejabberd目录的安全

Mnesia database spool files: /var/lib/ejabberd/db/*
Mnesia数据库spool files: /var/lib/ejabberd/db/*
The files store binary data, but some parts are still readable. The files are generated by Mnesia and their permissions cannot be set directly, so it is preferable to secure the whole /var/lib/ejabberd/db/ directory.
Erlang cookie file: /var/lib/ejabberd/.erlang.cookie
See section 5.3.
这些文件是以二进制存储的,但是其中有些部分是可读的。这些文件是Mnesia创建的并且他们的许可(permission)不能直接授权访问,最好保证这个目录的安全/var/lib/ejabbered/db/
Erlang cookie 文件:/var/lib/ejabberd/.erlang.cookie

2009年3月29日星期日

ejabberd 2.0.4 Installation and Operation Guide Chapter 6 Clustering

ejabberd 2.0.4 Installation and Operation Guide

工作需要,看了一下文檔,順便翻譯了一下,按照自己理解,不一定是直譯的,看這種學習方式可行否?

原文:
http://www.process-one.net/en/ejabberd/guide_en#htoc73
Chapter 6 Clustering
6.1 How it Works 如何工作

A Jabber domain is served by one or more ejabberd nodes. These nodes can be run on different machines that are connected via a network. They all must have the ability to connect to port 4369 of all another nodes, and must have the same magic cookie (see Erlang/OTP documentation, in other words the file ~ejabberd/.erlang.cookie must be the same on all nodes). This is needed because all nodes exchange information about connected users, s2s connections, registered services, etc…
一个jabber domain可以是1到n个ejabber节点。
这些节点可以运行在不同的机器上,当然是通过网络连接的。
他们使用4369端口互联互通,有相同的magic cookie(见 Erlang/OTP 文档,换句话说 ~ejabberd/.erlang.cookie必须是相同的在所有节点)。
所有节点交换信息比如: 连接用户,s2s 连接,注册服务等诸如此类都会用到。

Each ejabberd node has the following modules:
每一个ejabber node 有以下模块:
* router, --路由
* local router, --本地路由
* session manager, --session管理
* s2s manager. --s2s管理

6.1.1 Router 路由器(模块)

This module is the main router of Jabber packets on each node. It routes them based on their destination's domains. It uses a global routing table. The domain of the packet's destination is searched in the routing table, and if it is found, the packet is routed to the appropriate process. If not, it is sent to the s2s manager.
这个模块是运行在每一个节点的Jabber包的主路由器(main router). 路由基于他们目的域(destination domains). 使用一个通用路由表(a globalrouting table). (发送)包的目的可以从这个路由表中查找,如果找到,(发送)包就被路由到恰当的进程(process), 如果没有找到,包会被送到s2s管理器(s2smanager)

6.1.2 Local Router 本地路由器

This module routes packets which have a destination domain equal to one of this server's host names. If the destination JID has a non-empty user part, it is routed to the session manager,
otherwise it is processed depending on its content.
这个模块路由那些包, 他们的目的域(destination domain)是这台服务器的主机名。
如果目的JID(destination JID) 有一个非空用户空间(non-empty user part), 则将被路由到session 管理器那里(session manager),否则,它将按照它的内容来执行。

6.1.3 Session Manager session管理器

This module routes packets to local users. It looks up to which user resource a packet must be sent via a presence table. Then the packet is either routed to the appropriate c2s process, or stored in offline storage, or bounced back.
这个模块路由包到本地用户。 It looks up to which user resource a packet must be sent via a presence table. 然后这个包被恰当的路由到要么是c2s process, 要么存储在离线存储设备中,或者bounced back(受挫后恢复原状)

6.1.4 s2s Manager

This module routes packets to other Jabber servers. First, it checks if an opened s2s connection from the domain of the packet's source to the domain of the packet's destination exists. If that is the case, the s2s manager routes the packet to the process serving this connection, otherwise a new connection is opened.
这个模块路由包到其他的jabber服务器。
首先,他检查是否有一个打开的s2s connection,该连接从包的来源域到包的目的域。如果确实有, 那么s2s管理器就会路由包到服务这个链接的进程, 否则就新建一个链接。

6.2 Clustering Setup 群集的建立

Suppose you already configured ejabberd on one machine named (first), and you need to setup another one to make an ejabberd cluster. Then do following steps:
假设你已经配置了一个ejabberd在一个已经命名的机器上,接着你想建立另一个来构成一个ejabberd cluster. 那么按照下面的步骤:

1. Copy ~ejabberd/.erlang.cookie file from first to second.
1. 将~ejabber/.erlang.cookie文件从第一个服务器复制到第二个

(我这里是源代码安装,configure按照缺省的进行配置所以位置是
[root@localhost ejabberd]# pwd
/var/lib/ejabberd

[root@localhost ejabberd]# cat .erlang.cookie
PJNBBQWMBVEYRVSFLLMV[root@localhost ejabberd]#

(alt) You can also add `-cookie content_of_.erlang.cookie' option to all `erl' commands below.
(变通方法) 你也可以在erl 命令选项后加上 `-cookie content_of_.erlang.cookie'
2. On second run the following command as the ejabberd daemon user, in the working directory of ejabberd:
在第二个服务器上运行下列命令(ejabberd守护进程用户),在ejabberd的工作目录
erl -sname ejabberd \
-mnesia dir "/var/lib/ejabberd/" \
-mnesia extra_db_nodes "['ejabberd@first']" \
-s mnesia

This will start Mnesia serving the same database as ejabberd@first. You can check this by running the command `mnesia:info().'. You should see a lot of remote tables and a line like the following:
这将开始一个数据库(ejabberd@first)的 Mnesia服务. 你可以通过运行命令`mnesia:info().'来检查他的运行情况。
你会看到n多个远程表和类似以下行说明:
Note: the Mnesia directory may be different in your system. To know where does ejabberd expect Mnesia to be installed by default, call 4.1 without options and it will show some help, including the Mnesia database spool dir.

running db nodes = [ejabberd@first, ejabberd@second]

3. Now run the following in the same `erl' session:
现在运行一下命令在相同的 'erl' session

mnesia:change_table_copy_type(schema, node(), disc_copies).

This will create local disc storage for the database.
这将为这个数据库建立一个本地的存储。


(alt) Change storage type of the scheme table to `RAM and disc copy' on the second node via the Web Admin.
(变更办法) 可以通过Web Admin改变第二个节点的存储类型 为 `RAM and disc copy'

4. Now you can add replicas of various tables to this node with `mnesia:add_table_copy' or `mnesia:change_table_copy_type' as above (just replace `schema' with another table name and `disc_copies' can be replaced with `ram_copies' or `disc_only_copies').
现在你可以加入复制各种各样的表到这个节点,使用`mnesia:add_table_copy' 或 `mnesia:change_table_copy_type'(只要用其他的表名字替换上面'schema'和将'disc_copies'替换为'ram_copies'或'disc_only_copies'.

Which tables to replicate is very dependant on your needs, you can get some hints from the command `mnesia:info().', by looking at the size of tables and the default storage type for each table on 'first'.
复制那些表非常依赖于你的需要,你可以从命令 mnsia:info().中得到相应的信息,表大小,每个表的缺省存储类型


Replicating a table makes lookups in this table faster on this node. Writing, on the other hand, will be slower. And of course if machine with one of the replicas is down, other replicas will be used.
复制一个表,可以使查询这个表较快在这个节点,(读特性), 写,将会较慢, 当然如果某个节点正在复制工作,其他的节点会提供相应的服务。
--大意是说如果复制表到本地节点,读要快一些,相应的写就会慢一些,对于多个节点来说,一个节点正在复制,其他节点在服务中high availability.


Also section 5.3 (Table Fragmentation) of Mnesia User's Guide can be helpful.
当然可以参考Mnesia 用户指南 5.3 (表分片)
(alt) Same as in previous item, but for other tables.

5. Run `init:stop().' or just `q().' to exit from the Erlang shell. This probably can take some time if Mnesia has not yet transfered and processed all data it needed from first.
运行 init:stop() 或 q() 离开erlang shell, 这可能会花费一些时间如果Mnesia没有转换或处理数据从第一个database.

6. Now run ejabberd on second with a configuration similar as on first: you probably do not need to duplicate `acl' and `access' options because they will be taken from first; and mod_irc should be enabled only on one machine in the cluster.
现在运行ejabbered 在第二个节点类似第一个节点: 你可能不需要复制acl和access选项, mod_irc可能只运行在一个集群的其中一部机器上
You can repeat these steps for other machines supposed to serve this domain.


6.3 Service Load-Balancing 负载均衡

6.3.1 Components Load-Balancing 组件均衡

6.3.2 Domain Load-Balancing Algorithm 域均衡算法

ejabberd includes an algorithm to load balance the components that are plugged on an ejabberd cluster. It means that you can plug one or several instances of the same component on each ejabberd cluster and that the traffic will be automatically distributed.
ejabber cluster 包含了一个负载均衡的算法,也就是说,你可以插入一个或n个具有相同组件实例(instance)在每一个ejabbered cluster, 并且自动控制流量分布

The default distribution algorithm try to deliver to a local instance of a component. If several local instances are available, one instance is chosen randomly. If no instance is available locally, one instance is chosen randomly among the remote component instances.
缺省的分布算法尽量交由含有组件的本地实例来处理。 如果存在多个本地实例,将随机挑一个实例。 如果本地没有有效的实例, 将从远程的实例中挑选一个来处理。

If you need a different behaviour, you can change the load balancing behaviour with the option domain_balancing. The syntax of the option is the following:
如果你需要特别的行为,你可以使用domain_balancing选项改变load balancing行为,语法要求如下:

{domain_balancing, "component.example.com", }.

Several balancing criteria are available: 几种均衡标准

* destination: the full JID of the packet to attribute is used. 目的 packet 去的地儿
* source: the full JID of the packet from attribute is used. 源 packet 来的地儿
* bare_destination: the bare JID (without resource) of the packet to attribute is used. 裸的JID, packet要去的
* bare_source: the bare JID (without resource) of the packet from attribute is used. 裸的JID, packet 要来的

If the value corresponding to the criteria is the same, the same component instance in the cluster will be used.
如果这些值的criteria相同,在cluster中有相同组件的instance可用,(用谁都行)
6.3.3 Load-Balancing Buckets

When there is a risk of failure for a given component, domain balancing can cause service trouble. If one component is failing the service will not work correctly unless the sessions are rebalanced.

这里有一个给定组件的风险的问题,如果域均衡会导致服务混乱。

In this case, it is best to limit the problem to the sessions handled by the failing component. This is what the domain_balancing_component_number option does, making the load balancing algorithm not dynamic, but sticky on a fix number of component instances.
在这种情况下,最好是把问题限制在操控failing component的session上, 这也是domain_balancing_component_number参数的作用,就是将load balancing 算法不是动态的设定,而是和几个固定的组件实例绑定在一起。
The syntax is the following:
语法形式:
{domain_balancing_component_number, "component.example.com", N}

为人父母者不知医为不慈,为人儿女者不知医为不孝

为人父母者不知医为不慈,为人儿女者不知医为不孝。

--徐文兵

中医不仅是一门学问,更是为人处事之道。
一位網友留言

2009年3月27日星期五

好文转: 认识汉字——性命

原文:http://blog.sina.com.cn/s/blog_4c9ed8bf010009kt.html
值得收藏的一篇文章,豁然开朗的感觉!

性命

“性”和“命”是两个重要的哲学和医学概念,本身就是一个复杂严肃的话题,值得人们去研究探讨。古代真人早有论述传世,可惜千百年来传承出错、伪说纷纭,歧义百出。到了今天,中医学界对这两个字讳莫如深,避而不谈。虽然人人在说性命攸关、性命双修、身家性命、养性延命,但是却仔细一问含义却莫名其妙。好读书而不求甚解,是到了返朴归真,正本清源的时候了。
按字的顺序是性命,可是解释的时候就得先说命了,不为什么,因为命是根本、基础。有命才有身心的生存、活动。
命者,口令也!拆开命字一看便是。甲骨文字形,令字上面是集聚的“集”;下面是“人”,象跪在那里听命。从集从人,表示集聚众人,发布命令。徐鍇注《说文解字》的时候说:“號令者,集而爲之。卪,制也。”令就是决定好了,让人必须执行的规矩。用英语表示的话就是order, in order, destiny。
口令出自君王,那就不得了了,就是命,王言惟作命!诰命又称诰书,是宣告皇帝封赠官员命令的专用文书。皇帝发布诏书的一句话就是“奉天承运”,假借天命,表明自己是在替天行道。说明比天子更厉害的是“天命,老天爷决定好了的,人人必须遵守执行,谁也别想违背改变。传达天命的人,现在有算命先生、靈媒,古代有巫覡。当然不乏假传圣旨的骗子。所谓知天达命,就是彻底了解了自己被先天决定好了的东西。孔子说他:“五十而知天命”,言外之意就是五十岁以前一直想自己把握自己的命,到了50岁才明白胳膊拧不过大腿,只能认命归顺。
《左傳·成十三年》:“民受天地之中以生,所謂命也。”一句话道明了人是天地交流的产物,人的一生注定是被决定了。这就是天造地化,不以人的意志为转移的命。
现在算命的往往依照人的生辰八字,且不说出婴儿生的时间可以人为改变,但就各地时间与北京时间的差异就是一本糊涂帐。现代科学研究DNA的碱基配对序列,试图通过基因来揭示人的命。中国古人则认识到除了父精母血以外,精子卵子结合瞬间的天时、地势、人情同样会对人的命产生影响。如果说现代科学试图见微知著的话,中医则是见著测微,探究人生发展变化的规律,测定命的轨迹。《黄帝内经》就是一部揭示命的密码的经书。《灵枢天年》:“岐伯曰:以母为基,以父为根,失神者死,得神者生也。黄帝曰:何者为岐伯曰:血气已和,荣对已通,五藏已成,神气舍心,魂魄毕具,乃成为人。
《黄帝内经素问》开篇第一章《上古天真论》就揭示了女性、男性的不同成长规律。
“女子七岁,肾气盛,齿更发长;二七而天癸至,任脉通,太冲脉盛,月事以时下,故有子;三七肾气平均,故真牙生而长极;四七筋骨坚,发长极,身体盛壮;五七阳明脉衰,面始焦,发始堕;六七三阳脉衰于上,面皆焦,发始白;七七任脉虚,太冲脉衰少,天癸竭,地道不通,故形坏而无子也。”
“丈夫八岁,肾气实,发长齿更;二八肾气盛,天癸至,精气溢泻,阴阳和,故能有子;三八肾气平均,筋骨劲强,故真牙生而长极;四八筋骨隆盛,肌肉满壮;五八肾气衰,发堕齿槁;六八阳气衰竭于上,面焦,发鬓颁白;七八肝气衰,筋不能动,天癸竭,精少,肾脏衰,形体皆极;八八则齿发去。肾者主水,受五藏六府之精而藏之,故五藏盛乃能写。”
在《黄帝内经灵枢》《天年》篇中又揭示了人的寿命以及相应的身心的变化。
岐伯曰:人生十岁,五藏始定,血气已通,其气在下,故好走。二十岁,血气始盛,肌肉方长,故好趋。三十岁,五藏大定,肌肉坚固,血脉盛满,故好步。四十岁,五藏六府十二经脉,皆大盛以平定,股理始流,荣华颓落,发颇斑白,平盛不摇,故好坐。五十岁,肝气始衰,肝叶始薄,胆汁始减,目始不明。六十岁,心气始衰,苦化悲,血气懈情,故好卧。七十岁,脾气虚,皮肤枯。八十岁,肺气衰,魄离,故言善误。九十岁,肾气焦,四藏经脉空虚。百岁;五藏皆虚,神气皆去,形骸独居而终矣。”
命决定了人身的生长壮老已的过程,人们常常把生命连在一起说,慢慢的命也就有了生的意思,翻译过来就是life, 动词就是live, living。人生一甲子为寿,60岁以前死,都算夭折。80为中寿,120岁为长寿,尽其天年。
现在人们常说的命运,最终搞得命和运不分。命是命,运是运。命是恒定不便的,运是有起伏跌宕的生为苍蝇,就不要幻想去做蝴蝶。能够改变的只是在厕所里飞还是在厨房里飞。所谓医生治病不治命,说的就是医生只能暂时改变人的气血运行,无法更改既定的、注定的生命变化规律。病入膏肓、骨髓的时候,扁鹊说过:“司命之所属,无奈何也!”
性是心生,也就是活着的心。相对于身体的存活,人的心理活动形成了人的性(nature, personality )。包括情绪、情感、意识、思想、智慧、记忆等等。相对固定的话就形成了人的性格、性情。
人的天性,本性是由命决定好了的,一辈子不会改变的。具体说就是“神”。《黄帝内经灵枢》《本神》篇中说:“生之来谓之精,两精相博谓之神。”也就是说父母的精血结合赋予了孩子的神。神分阴阳、表里的话就是魂魄。简单讲,魄属阴,主宰夜间人体的功能活动,藏于肺。主管浅表的身体的本能反应。比如知觉、欲望。寒热、温凉,饥渴、需要等等,也就是人们常说的六欲。魂为阳,藏于心,主宰白天人的情绪、情感、记忆、智慧等等高级精神活动。包括人常说的七情,喜怒忧思悲恐惊。还有更深刻的感情,爱恨情仇,贪嗔痴怨,迷恋、癫狂、瘾癖等等。同性恋很大程度上是天性,加上幼儿时期的强化诱导,成年以后就固定成形,永生不变。
人的习性是出生以后被教育培养出来的心理功能,主要包括人的意识、思想,以及由此形成的价值观、判断力、智力等等。习性是可以塑造和改变的,不能遗传的,与天性正好相反。
习性中包括人的共性,也就是在与人相处,由集体赋予的一种性格特征。比如礼义廉耻,忠孝仁爱,贞节悌恕等等。为团体利益往往要牺牲个人利益,所以共性的培养,往往是以牺牲个性,毁灭天性为代价的。
道家和中医的生命观首先是贵生,认为生命是最可宝贵的,千金难买。隋唐时期伟大的道家、医学家孙思邈撰写了《千金要方》和《千金翼方》,起因就是他认为“人命至重,贵比千金。”可是几千年来,中国的当权者为了统治的需要,推行的是儒家的轻生说教。孔子说过:“渴死不饮盗泉水,饿死不吃嗟来之食。”孟子说:“生我所欲也,义亦我所欲也。二者不可得兼,舍生而取义也。”朱熹说过“饿死是小,失节是大。”蒋介石则勉励属下“不成功则成仁。”外国的裴多菲也是一样,说“生命诚可贵,爱情价更高,若为自由故,二者皆可抛。”这样的培养出来的意志、意识,本是违反天性,不是促人早死,就是让人活在与天性的矛盾冲突痛苦中。
认识天命,了解本性,在此基础上去顺应天命、尽其天年;顺应天性、愉悦心神就是养性延命的基本思想。遗憾的是一帮人定胜天的狂徒一直在做着违背自然、违反天性的勾当,于国搞得民不聊生,于人弄得生不如死。背道而驰,可谓无德。
子曰:“生死有命,富贵在天。”狗尾续貂,我再加上两句:“成败托运,毁誉由人。



昨日跟朋友恰好讨论关于命运的问题,今天看到这篇文章,真是解心中困惑的一篇好文啊!

non-interactive FTP --bash shell

好久以前写的东西,无意间找到了,可以跑的bash 环境下:

#!/bin/bash  

cd /src-work-directory
ftp -n<< !
open  destIP 
user UserName  UserPassword
binary
prompt off
cd /dest-work-directory
mput *.pdf
mput *.doc
mput *.ppt
mput *.xls
mput *.txt
mput *.rar
mput *.zip
close
bye
!


纪录一下,备忘!

2009年3月26日星期四

《上古天真论》第九讲 文字稿

衷心感谢听众朋友红旗飞扬、罗茹蔓分别花费自己的宝贵时间,整理出来文稿。我粗粗校对以后发表出来供大家参考!

四八筋骨隆盛,肌肉满壮。五八,肾气衰,发堕齿槁。六八阳气衰竭于上,面焦,发鬃颁白。七八肝气衰,筋不能动。八八天癸渴,精少,肾脏衰,形体皆极,则齿发余。

肾者主水,受五脏六腑之精藏之,故五脏盛乃能泻。今五脏皆衰,筋骨解堕,天癸尽矣,故发鬓白,身体重,行步不正,而无子耳。

开始:

(片头)洞见意识底层,诠释上古时期的生命哲学,最新鲜的中国文化节目《国学堂》,梁冬和您一起发现中医太美。

梁冬:是的,重新发现中医太美,大家好,欢迎收听今天晚上的《国学堂》,依然是我们一起来解读《黄帝内经》上古天真论,对面依然是厚朴中医学堂堂主徐文兵老师。

徐文兵:梁冬好,听众朋友们好。

梁冬:在过去的几周里,我们聊到了女子是以七年为一个生理周期,所以七岁怎么样啊,一七、二七、三七、四七。后来呢我们在上一周聊到了男子,丈夫一八、二 八、三八、四八,是以八年为一个生理周期的。话说就讲到三八,肾气平均,筋骨劲强,真牙生而长极,特别强调筋骨劲强不是筋骨强劲,因为呢,筋对应的是劲, 骨对应的是强。稍微复习一下我们今天抓紧时间,事不宜迟,进入四八筋骨隆盛,肌肉满壮,徐老师,筋骨隆盛,为什么叫隆盛呢?

徐文兵:隆啊,是他发力的时候,我们把筋绷起来、鼓起来的那样叫隆;盛呢,我们讲骨髓要充盈,充满了骨髓,骨髓就是精髓,它是我们生命之本,也是我们所说 精气神的精,这时候男人虽然不长个了,因为个长到了极点,但是他剩下那些精气充实到身体的各个部分,这时候男人会变得宽、变得厚,体重也稍微会增加一些, 这时候男人的生理会达到一个高峰。

梁冬:筋骨隆盛,一想起来就觉得很性感的样子。

徐文兵:所谓性感就是一个人的肾气充盈,表现他有很强的生育能力,这时候流露出来的,给人的感觉甚至是一种气氛、感觉,甚至是一种味道。

梁冬:我们只能站在男性的角度思考问题,我们知道什么样的女性是性感的,但是我一直不能确切地知道男孩子肌肉丰满、很壮的样子对女孩子是不是有性感的吸引力?

徐文兵:子非鱼焉知鱼之乐也。

梁冬:我一直以为写一篇好的作文很性感(笑)。

徐文兵:他表现在性感有很多方面,有些呢表现表现在形,就是形体里的性感,比如说男人有他的性征。如果说来一个男人肩膀也不宽,胡子也没有,甚至没有喉结,一说话娘娘腔,他也不性感,或者会让另外有一些特殊爱好的人感觉到….

梁冬:但是你说现在流行的偶像不都长那样吗?

徐文兵:这是有病人的爱好,任何一个社会会产生一种病态的美,就是一种畸形的美,我们上中学时学过那个《病梅馆记》,龚自珍写的,当时那种末代封建社会人 活的很扭曲,很拧把,它是一种病态。它欣赏的美是什么,它就欣赏不了那种健康的美,它可以把梅给拧得、扭得,所以它欣赏得也是那种病态的美。当一个男人他 的阳气或者精力不足的时候,他靠什么取得一种平衡的美感呢?他靠削弱女人,所以我们古代社会最大的一个病态就是把女人的脚给她缠起来,让女人无力支撑,婷 婷袅袅、弱不禁风,他欣赏这种病弱的美,所以你看一遍《红楼梦》,很多男人喜欢的人不见得都是林黛玉,身体相对弱的人,缠绵的人、多愁善感的人欣赏的人都 是林黛玉。另外一些比较强壮的人、精力旺盛的人,他欣赏的可能就是史湘云或者薛宝钗,每个人的审美都跟他的身体物质基础都有关系。

梁冬:我们的听众朋友,到底有多少人看过红楼梦呢?或者看过红楼梦小人书以外的足本的呢?可能不是很多。那筋骨隆盛,肌肉满壮,这有什么说的吗?

徐文兵:刚才讲到是筋骨,按中医讲骨属肾,骨髓也属肾;筋属于肝。现说的筋骨也是一个母子的关系,肾属水,肝属木,水生木,下面就说到脾胃和土的关系,肌 肉满壮,肌和肉的关系我以前专门写过文章,就是说肌和肉,为什么我们说肌和肉,它们不一样,完全不一样。中国人描写呢,中国人的智慧那个慧的水平非常高。 它就是说同一个东西处在不同的时刻、处于不同的状态,用于描绘它的词不一样。

梁冬:肌肉在西方语中讲Muscle,讲muscle就完了,肌和肉有什么不一样?

徐文兵:是这样,比如说我们说这有个花,名词,但是那个花正好绽放了,吐露芬芳的时候我们管它叫什么?是ing,是一种动态的的状态,我们管它叫华,中华的华。

梁冬:我还以为是ing的huaing。。

徐文兵:名词加ing描写的是那个状态,春天要开花,或者秋天要结果,我们说华而不实,光开花不结果。它把这种状态用一个带有气,具有动态的词表达出来。 西方人,也许我英语也没学会,就没找到一个对应的词来表达它。所以肌和肉描写的是同一个物质,所处的不同状态。我们北京人说话,这个人很肉…..

梁冬:以前我们班有个同学叫牛肉面,又肉又面,姓牛,所以叫牛肉面。说的就是这个事。

徐文兵:别人说这个人是面瓜,说你开车真肉,它肉是一种什么状态?

梁冬:没劲。

徐文兵:没劲,就是那个萎软的,没弹性,提不起来的那种状态。所以呢,同样是这块肉,当它处于放松的状态时我们管它叫肉;当它发力的时候,绷起来,你看肌 肉那个肌,突起那个状态,发力的时候那个状态叫肌,有些人是处于老发力,不放松,肌肉紧绷状态,我管它叫有肌无肉,我们好多人就老保持一个姿势,在那打电 脑,最后条索,一摸,肌肉各楞各楞的,这叫肌。很多人,比方说偏瘫的人,肌肉老不活动,最后肌肉就松弛萎缩了,比较肉。但是我们这说的肌肉的状态都是充 盈,该发力的时候它就绷起来,该放松的时候它又很软。

梁冬:哎呦,不得不承认,我们大部分的人都是没文化的人,肌和肉,肉和肌都不大一样。现在我们在超市里吃的鸡,都不能叫肌,它只能叫肉鸡,它没有力气了。 前两天我吃了一个从内蒙拿过来的羊肉,哇!!!吃完之后晚上发散,就是那个浑身有燥劲,稍微休息一下和大家继续探讨肌肉满壮。

梁冬:您现在收听的是中央人民广播电台最新鲜的文化节目《国学堂》,辅佐中国文化发扬光大。

梁冬:徐老师,继续回来到我们的重新发现中医太美之《国学堂》,讲到男子四八,筋骨隆盛,肌肉满壮,满壮这两个字有的讲吗?

徐文兵:满,我们说这人肌肉萎缩,萎,是他不发力,我们知道阳萎就这萎,没有力量,所以它就是不壮,那个满就是充盈的,有它的物质存在。很多人就是,比方说我们捏一捏这人的小腿肚子,捏一捏胳膊上的肱二头肌,一捏,没有小耗子,没肉。

梁冬:还有就是捏下去就是一坑。

徐文兵: 肿呀,打肿脸充胖子。

梁冬:几年自然灾害的时候,营养不良。

徐文兵:浮肿,既不满,也不壮。还是说它一个是物质基础,一个是功能。我们这中国人骨子里遗传下来对问题的认识,他就有那种对气和神的认识,就如我们常说 这人,喜气洋洋,怒气冲冲,杀气腾腾,一脸晦气,这些都是我们骨子里,从小潜移默化受的影响,我们在描写它的那个动状态,就是说我们从小就有一种哲学的素 养,不是光认识到物质的存在,而且认识到了推动物质运动背后的那个东西,我们管它叫气。所以你看《黄帝内经》每个话都要讲精、讲神、要讲才后面跟着个力, 讲个精后面有个气,讲个满要讲个壮,讲个强要讲个筋,强就是筋骨强劲,筋是指有弹性,所以它整个贯穿了对物质本身及对物质状态的认识。我们学辩证唯物主 义,第一句话,世界是物质的,大家就很多人很浅薄,就记住这句话,后面还跟着一个呢,物质是运动的。所以那个运动中的物质我们就叫它气,对那个状态是有把 握的。所以男人到了32岁,是男人的生理达到了巅峰状态。

梁冬:其实物理学里面有类似的讲法。能量,做功,这个物质本身是存在的,你有这一陀东西,都是牛顿都好了,但是它里面还有一个东西,就是推动这个东西运动有势能有动能。

徐文兵:势能,我们常说大势所趋,势不可挡,这个到底是什么东西,也是我们中国人的智慧,有这个字,就是背后的能量

梁冬:五八,肾气衰,发堕齿槁。就是过了32岁以后就慢慢走向衰落了,五八40岁时,好可怜呀。

徐文兵:我们要顺应自然,认识自然。到了高峰以后,盛极必衰,32岁以后生理功能就走向衰落。

梁冬:所以很多家庭有这样一个观念,就是一个男人熬到36、7岁时就不在外面折腾了。为什么呢,他的力气不够了,能把家里这坛子事添好就不错了。五八40岁时肾气就衰了。

徐文兵:也就是说男人从32岁开始走下坡路了,这个我自己认为,你们感觉是这样的,我大学毕业是24岁,正是风风火火一心要做事情、往前冲的年龄段。

梁冬:总觉得怀才不遇的时候?

徐文兵:没有,没有。那时也没觉得怀才不遇,就觉得身上有使不完的劲。我有个感觉就是到32岁以后不能熬夜了

梁冬:这倒是真的。

徐文兵:你说你有没有同感?

梁冬:有啊,常常碰见我们同龄人,一见他们就说,哇!!!晚上本来叫搓麻将,不能说。晚上剪一个片子,晚上讨论一个剧本就没有力气了。

徐文兵:我毕业是留在东直门医院,我毕业搞行政。纠纷、事故处理一晚上没睡吧,第二天洗把脸,该干嘛干嘛。可是32岁以后,你要让我熬个夜,值个班,没睡觉吧,第二天接着干,那会困的,我说句话叫困不欲生,连死的心都有了。

梁冬:对,万念俱灰。

徐文兵:就是那种精和神供应不上,第一个感觉就是眼睛干涩,睁不开眼,我们说人的体液也是身体精的一部分,也是由肾精所化。你要熬夜本来是养阴的时候,白天是养阳,晚上睡觉是养阴。你本来滋阴养阴的时候没有睡觉,以前肾精足还能供得上,到过32 岁以后那眼睛就干的不行,睁不开眼,不仅眼干,而且还口干。一般人的养生,男人从开始关注养生也是从32岁以后。老百姓有句俗话就是30岁以前人找病,人找病是什么意思,冰天雪地脱光了裸奔、游泳没事。

梁冬:让我脱光了在雪地里撒点野。现在崔健就不写这种歌了。

徐文兵:绝对他写不出来了。30岁以前是人在那做,找病。找了半天还不得病,肾气足。到了30岁以后是病找人。这也不舒服了,那也不舒服了,这时候人就开 始关注养生了。所以《黄帝内经》你给那些32岁以前的男人或28岁前的女人去讲,人家说这关我什么事,不关心。一般都是过了这个生理高峰以后,就力不从心 了。

梁冬:立刻就有很明显的感觉。

徐文兵:马上就有感觉。

梁冬:强调这个肾气衰,发堕齿槁。就是开始掉头发。

徐文兵:40岁就是五八,我刚刚过了40岁,五八40岁就开始出现脱发。齿槁是什么意思呢?我们经常说木头没有水了,枯槁了,人的牙齿就是肾的。

梁冬:肾有余。

徐文兵:肾之余,骨之余。很多人到了40岁就开始牙齿变得枯槁。原来是有滋润的,甚至说,我们说的齿如含贝,有闪光的,到这会就开始干涩枯槁。有人以前咬核桃,嘎嘣一咬,核桃碎了,现在一咬核桃没碎,牙碎了。

梁冬:所以你很难见到40岁的人还用牙齿开啤酒瓶,没有的。

徐文兵:那叫没启子。

梁冬:发堕齿槁,我以前很少留意到有些人那个牙齿光泽,年轻的时候是很亮的。

徐文兵:我们叫明眸槁齿,眼睛哗哗的闪,眼睛会说话,牙齿也是闪着光。

梁冬:对明眸皓齿。也就是说我们以前看这些字,从来没有认真思考过。

徐文兵:所以你在对这句话去看,男子八岁,他叫发长齿更,到了五八40岁叫发堕齿槁。对应一下吧,生命就是这样残酷无情。

梁冬:当然了,当我们从另外一个角度来看,当我们能够从节律上看,来了这些事情你也能比较从容。

徐文兵:所以呢,我们看到很多男人在40岁这个年龄出现了脱发、谢顶。除了脱脱发以外,牙齿到40岁的时候就开始掉了。这个以后还会讲到,懂得养生的人, 平时注意照顾自己身体的人,他不会出现这个问题,他的脱发不会出现歇顶,头发不会掉的那么厉害。很多人到八九十岁还一口好牙,这就是懂得养生之道的好处。 《黄帝内经》讲的是大多数,取个平均值,一般的人是这样,但是懂得养生的人不是这样。还有那些过度造自己的人,还不到40岁就早早地出现这个问题了。

梁冬:看来这个问题还是需要大家留意,好了。六八,阳气衰竭于上面焦。发鬓斑白。

徐文兵:六八到四十八岁就接近于半百了。皇帝问岐伯,年半百而动作皆衰,四十八岁接近50岁的时候出现阳气衰竭于上。男人和女人的区别,男人属阳,女人属 阴。女人出现阳气不足,到35岁,出现面始焦,发始堕,这是正常的,因为女人属于阴性,阳气本来就不足。男人本来就充满阳气,所以面焦,脸色发黑,上次你 也说了,那种发干燥,没有润泽的年龄相对要晚一点,但是到了48岁,阳气也到了脸上,就出现了焦黑、皱纹。

梁冬:到不了脸上,我想问它的出发地是不是在肾?

徐文兵:出发地不是在肾。

梁冬:在哪呢?

徐文兵:我们在学女性的时候特意跟您说了,这个阳明脉衰,后来叫三阳脉衰于上。它指的不是走元气那个经络,指的是后天之气的12正经。这个阳气就是指六 腑,胃、大肠、小肠、膀胱,三焦、胆这六个。六腑的消化功能弱了,上次我在说女性的时候也说到这个问题,所以说消化功能弱了,它就没有额外的力量走到脸 上。将来我们学经脉,人的脸上有六个经脉,都是阳气的经脉,都是六腑的经脉,额头两个眉毛中间说膀胱,眼角是胆和三焦。鼻子两边是大肠,整个覆盖在脸上是 足阳明胃,颧骨是小肠,基本上就这么个分布,所以整个脸都是被六条阳经覆盖,所以当你消化功能好、肾气足的时候,你总是满面红光,或者是鹤发童年。可以当 你六腑的消化功能弱了以后,首先表现出来的就是满脸的焦黑,焦黄。。。

梁冬:晦暗之气。

徐文兵:我们形容就是这个人来了,怎么跟没洗脸似的,通过调理以后,比方说中医治疗,恢复他的消化功能。这时人脸开始慢慢变白,印堂开始发亮,这时阳气就恢复了。

梁冬:可以透过了解中医的原理之后,从一个人面上的这个光泽度….来了解他的内脏的功能。

徐文兵:中医讲望闻问切,第一个我们讲是望神,一打眼看得是神,这人还有神没神了,神还在不在了,看的是眼神。我们说男女互相吸引,一见钟情,它也是一种 神,我们说四目一对,心如撞鹿、有触电的感觉,开始是触动神,产生一种气。第一望神,第二望的是脸色,包括你刚才说的颜色的问题,润泽的问题,还有一些出 现斑呀、点的问题,都是我们望诊的功夫。

梁冬:我有个技术性的问题想请教你,就是说那些女青年,一看到自己喜欢的男青年,哇!!!脸上就开始泛红,从技术上来讲,这是什么原因?

徐文兵:动心了。

梁冬:阿,因为眼睛看到的东西动了心,心又反馈到脸上。

徐文兵:动心了,我们说触动人的心的表现是什么,脸红、心跳、出汗,然后瞳孔放大,还有就是咽唾沫。

梁冬:紧张的时候就咽唾沫,犯罪分子被抓进双规的时候就咽唾沫。

徐文兵:这也动心了,女青年眼巴巴望着你,咽唾沫的时候,就开始动心了。

梁冬:眼巴巴望的时间长了没有结果就会望穿秋水?

徐文兵:望穿秋水

梁冬:说的就是这个东西吧?

徐文兵:秋水就是代指人的眼睛

梁冬:六八48岁的时候,阳气衰竭于上,面焦,发鬓斑白。我想请问为什么两角开始白,为什么不是后面也不是前面呢?

徐文兵:这就是我们说经络的分布,人的头顶是督脉,两边是膀胱经,人的鬓角就是我们走的三焦和胆经。三焦和胆经在消化功能里主化,就是把猪肉变人肉那个过 程,那个胆经和三焦它的根在哪呢?我们说肾是水,肝胆是木,水生木,所以人的肾气衰竭了以后第一个表现是肝胆的气不足。人胆子大小跟人的肾精有直接的关 系,知道人说打架吧,不和毛头小伙子打架,为什么?这些人下手没有轻重,胆子极大,等他老了开始考量轻重了,那会肾气已经开始衰了。

梁冬:所以我们常说胆大妄为以为是个形容词,其实是个描述性状语态词,描述生理结构。哇!!!有意思,稍微休息一下回来我们揣度一下你胆子到底有多大。

每周六晚十一点到十二点,梁冬和您一起打通身体奇经八脉,探讨上古时期的生命哲学,这里是中国之声最新鲜的文化节目《国学堂》

梁冬:《国学堂》继续和您分享黄帝内经,上古天真论,对面的仍然是厚朴中医学堂堂主徐文兵老师

梁冬:徐老师,刚才我们讲到这个年轻人胆大妄为

徐文兵:生理功能决定,你要引导他你要把他引导到一个正确的方向,否则就容易出事。

梁冬:是不是肾精足,那个胆就比较大,胆大的时候,做人就比较鲁莽,做人就比较有勇气。

徐文兵:对,古代也做一些解剖,比如说三国时期的姜维,解剖下来他的胆就超乎常人。就说所有人表现出来那种形而上学的思想,都有他的物质基础。刚才我说 了,少阳属于肾的孩子,肾精足,人的胆子就大。另外我们还会讲胆主决断,年轻的时候说干就干,不计后果,冲上去,到了这个年龄,胆气衰了以后优柔寡断。

梁冬:所以你看搞公司创业很少有四五十岁,公司高管出来的,就算你有钱,有经验,创不了业了,他就没有决断力了。

徐文兵:另外有一个三焦,三焦是走元气的,这种元气起于丹田,跟肾精关系就更加密切。所以对女性来讲,她的第一道皱纹起在眼角,正好是胆经和三焦的位置。 作为男人来讲,发鬓斑白,斑的就是鬓角,就是三焦和胆循行的部位。苏东坡说早生花发,可能也就是不到48岁被人折磨的…..

梁冬:喝酒、思考、写诗。

徐文兵:还有就是苏东坡也是个多情的才子,早生花发也就是肾精耗竭以后导致了胆经的功能不足。我们说肾:发为血之於,肾其华在发,就是肾气表现出来的颜色 在头发上,中国人得天地之全气,得天地之照顾,我们的头发是黑的。所以肾气足的人是一头乌发。外国人的头发是其他的颜色,但是他到这个年龄也会出现头发灰 白的问题。

梁冬:有些人天生出来就是白头发怎么办呢?

徐文兵:天生有遗传的原因,我们说那种人不是肾虚,是血热,心火太旺,不能一看这人头发白就说这人肾虚,中医是讲辩证,讲它们相互之间的关系。

梁冬:有面相的说,如果一个人年纪轻轻就有白头发,此人如果是老板的话,一定性情暴烈。

徐文兵:对,血热。你像你这种人。

梁冬:我一点都不暴躁,我公司的人都知道,都是我怕他们,他们从来不怕我。

七八肝气衰,筋不能动。天癸竭,精少,肾脏衰,形体皆极。这个肝气衰怎么解释?

徐文兵:我们先说了肾的子是肝和胆,他先表现在阳性的器官上,功能衰退了。阳气是在外面,表现为头发白了,肝和胆都属于木;肝,阴在内,是阳之守也;阳在 外,阴之使也;所以先是表现在外面的衰退,而后是里面脏器的衰退。所以到了这个年龄,肝开始衰退,肝属木,木是生发,往上的,所以五行里面有两对,两个向 上,两个向下;肝木、心火是向上走,肺金、肾水是向下走;达到平衡,但是到了这个年龄,原来那个生机勃勃的肝就开始出现萎缩、萎靡的现象。

梁冬:五行里肝主绿色,解剖里肝也是不是青的?

徐文兵:胆汁是绿色的,胆是绿的。肝藏血是红的。肝胆对应身体的是筋(肌腱),筋的作用,木曰曲直,五行里木的作用:大丈夫能屈能伸,就是风吹来了,树弯 倒了,风过去了,树又挺直了。正好与我们有弹性的筋是对应的,需要发力的时候筋绷起来,需要放松的时候筋放下去。另外肝有个重要的功能,主疏泄(疏导开 泄),跟男女性的功能有着密切的关系,比如说女人要来例假,都是肝血藏到一定阶段,突然开闸,血就出来。负责男人的性器官,就是阴茎,中医有个特殊的名词 叫宗筋,因为它和木有着一样的性质,大丈夫能屈能伸,需要用它的时候勃起很坚硬,不需要的时候又很放松很软件,这是正常肝的功能,到这时候肝的功能差了, 疏泄功能也差了。

梁冬:中医的老先生治阳痿总是先调肝再补肾。

徐文兵:现在都是胡乱的用中医,现在用的补肾药都是催心火的催欲剂,本来阳萎是精漏的多了,人的一种自我保护功能,歇会吧,别折腾了。

梁冬:不折腾。

徐文兵:但是这个人非得让它起来折腾,吃了很多春药,这些春药就是催肝的气血和心的火,这种就是加快自己死亡的速度。所以真正老中医治疗阳萎是调肝的,治 疗早泄是补肾的,它漏我们要补肾,它起不来我们要调肝。也有的人是阳强不倒,他起来倒不下去,也得调肝,所以起来和起不来都要调肝。一个就是连接骨骼和肌 肉的筋出现问题(失去弹性)要调肝,我们现在很多人一拧脖子,嘎啦嘎啦响,还有人出现一些骨关节病,一爬楼梯或一下楼梯,膝盖就疼的不行。他倒不是骨头出 了问题,而是连接骨头的筋(肌腱)出了问题,到这会就出现衰退了,所以我建议到这个年龄阶段的人吃什么呢?你猜猜。

梁冬:就是炖点牛蹄筋。蹄筋怎么做比较好吃,对身体也有益?

徐文兵:我发现回民馆子的蹄筋做的特别好,因为蹄筋特别不容易入味。所以到了这个年龄段的人别想着去补肾,不论男女出现了一些筋的问题多去吃点蹄筋,最好吃的是鹿蹄筋,你看那个鹿那么轻盈,跑起来那么快蹦的那么高,就是筋在起作用。

梁冬:前几天我和肖老师讲到“塵”,上面是鹿,下面是土,以前地上那个土弹的很高,是鹿才弹起来的,鹿跳的高,灰尘才弹的很高。

徐文兵:一骑绝尘,绝尘而去,说明它的筋好,肝好,肾好。

梁冬:说回来,筋不能动,就是七八56岁时注意的,筋不能动是不是很容易骨折?

徐文兵:不是,筋有一个特别重要的作用就是固定骨骼的位置,我们现在很多人说,业绩不突出,工作不突出,椎间盘突出。为什么椎间盘突出呢?椎间盘其实是一 个软骨,介于筋和骨之间,它是固定腰椎边上的肌腱失去了弹性,不能适应人过度剧烈或者是奇怪姿势的改变,结果那个东西就出来了,所以筋不能动,很容易伤到 骨。另外很多人随便吃药补钙,这和地里施化肥没什么区别,把骨头补得很脆。补得倒是很硬,但是它失去了弹性。摔一跤,原来能摔成2节,现在摔成好几节。

梁冬:摔成粉状,摔成粉碎性骨折。

徐文兵:所以我们讲还是要根据自己的实际情况,在食物里调节自己的营养。选择自己适合的食物是最好的,最好不要乱用药,

梁冬:腰椎间盘突出的人是不是要适当地多吃一点蹄筋?

徐文兵:腰椎间盘突出的人也要因人而异,我在临床当中碰到都是先出来筋和肌肉的问题,然后才伤到骨。

梁冬: 天癸竭,精少,肾脏衰,形体皆极。天癸我们一般就是指性荷尔蒙,对不对?

徐文兵:天癸到现在还没有定论,是天赋的我们本身肾精化生的一种物质或者能量,保持和促进性功能的物质或能量,这句话按考证应该放在八八。

梁冬:为什么放在七八了呢?

徐文兵:这是因为《黄帝内经》最初是写在竹简上,哪个好学人把牛皮筋翻断了,这根棍掉到下一根上,下一个人又不懂,接到下一根上了。所以读书有个认通假字的问题,还有一个就是要认识错简。七八讲的是肝,到八八讲的是最后藏的那点精,就是肾。

梁冬:应该是八八精少,肾脏衰,天癸竭。

徐文兵:到了八八六十四就过了一寿了,过了一个甲子以后,这个人精子的数目,精子的成活率,精子的活动度基本上就告一段落了,从此也就没有生育能力了。前 面七八的时候说明肝的功能衰竭了,精不能动了,也就是说不能行人道,出现了阳萎的问题。到了八八干脆就连子弹也没有了。前面说有子弹不能发射,没准通过现 在科技手段做人工授精还能怀孕,到了八八就连制造精子的功能也没有了。到这会就是人生的任务告一段落。

梁冬:到底还有没有可能再重新焕发生机呢?稍微休息一下。

从医学到哲学,一样的《黄帝内经》,不一样的新鲜观点,梁冬、徐文兵一起发现中医太美。

梁冬:是啊,重新发现中医太美,大家还是回来《国学堂》,梁冬和徐文兵老师一起来讲到男人的八年为一个生理周期,刚讲到七八,八八就是八八64岁的时候,则齿发去,肾者主水,受五脏六腑之精藏之,故五脏盛乃能泻。什么意思?

徐文兵:刚才我们讲到他没有生育能力了,第一是精子的问题。另外到这一阶段,不光是掉头发,牙齿枯槁的问题,齿发尽去,老年人到这个年龄一张嘴全是假牙,头发也掉的很稀疏,基本上全掉光了,即便没掉也全白了。

梁冬:基本上体验了拿在手上刷牙的感觉,左手一个牙,右手一把牙刷。

徐文兵:这就是身体肾精、肾气不足的一个表现。

梁冬: 八八则齿发余,肾者主水,是什么意思,为什么讲到这要肾者主水呢?

徐文兵:五脏跟五行的对应关系,木对肝,金对肺,火对心,水对肾,土对脾。

梁冬:为什么前面都不提,突然到八八的时候提肾者主水呢?

徐文兵:维持我们身体生长发育就靠我们先天的那点精,这个精我们叫先天之水,它绝对不是我们后天喝的水。

梁冬:这个东西我举个例子,就像地球的石油一样,炼点石油给装下去,那不行,它是几十世纪堆积下来的。

徐文兵:水就是精化生出来的体液,而不是喝进去的水,很多人多喝水,补液体,你补的可能都是邪气,为什么呢,这个水如果不经过消化、转化跟肾精结合,变不成你的体液。很多人喝一肚子水,没消化,喝完了就尿,还伤肾。

这个肾主水,我们讲颜色,你刚才说了,肝木是青绿色,(青包括两个蓝和绿色),心火是红色,脾土是黄色,肺白色,肾黑色。水为什么是黑色?水是无色透明 的,大海是蓝的,中医说水是黑的。黄河之水天上来,地球之所以有生命,是因为天地有个交流,黑色是因为水是从天上降下来的水。黑云压城城欲摧,雨云是黑色 的,这种积雨云降到地下,天上的雨降到地下,地下的水变成蒸汽又升腾到天上,这就完成了一个天地交流的循环。有了这种交流,才产生了天地之气阴阳的交流, 才产生了生命。地球上为什么有生命,其他星球上没有?是因为地球上有这种阴阳的交融,所以我们身上的水从哪来?

梁冬:肺不是主肃降吗?

徐文兵:我们身上水从哪来?它肯定也从天上来。人是天地的产物,我们也是一个小宇宙,小天地。我们的天在哪?

梁冬:我想天是不是头脑呢?

徐文兵:对呀,脑髓呀。我们经常说精髓,精在哪?我告诉你精就是髓,是我们骨子里的东西,就是你的髓,脑髓,骨髓,体髓,这是我们的水。

梁冬:那也是黑色的吗?

徐文兵:它们转化的过程就是身体肾精转化为气、转化为液的过程,所以它这句话就是对我们整个生理功能的总结。为什么男人到64岁没有精了,然后齿发皆去 了。因为我们的肾原来藏了很多的精髓(水),肾主封藏,现在这么多年慢慢消耗的漏光了,所以才会出现这么一系列的症状。言外之意是,你如果节约用水的话, 您就不会出现这个问题。

梁冬:这个东西你讲到这里,我就越发为我们地球表示担心了。地球的石油很像中医里讲的肾水。石油开采出来以后,地球变暖实际就是地球表层的变暖,地球内部的反而变空了。为什么现在有那么多的天灾,就跟人的身体肾精透支过度以后人容易得病一样。

徐文兵:真的,你看那煤炭也是黑的。

梁冬:所以佛家不建议人们用煤炭,那叫嗟悔。古代的人也知道煤可以燃烧的,为什么中国古代的人不怎么烧煤呢?所以呢受五脏六腑之精而藏之,五脏盛,乃能泄。

徐文兵:这个就说到了脏腑的关系。脏是藏于内,藏而不泄;腑是传万物而不藏。一个阴,一个阳,但是到了生理逐渐的衰老,就是把肾脏和其他各脏藏的精髓慢慢拿出来用,拿出来消耗。人的生命也就逐渐的终止。

梁冬: 今五脏皆衰,筋骨解堕,天癸尽矣,故发鬓白,身体重,行步不正,而无子耳。

徐文兵:这就是对英雄末路,美人迟暮的一个概括。这时候他出现了几个问题,一个是行步不正,现在医学诊断有个结论叫小脑萎缩,小脑负责人的平衡,如果脑髓(精髓)消耗过多,人走路就不能保持平衡,这也是肾衰的一个表现。

梁冬:肾主脑和骨髓,那现在这个小脑萎缩就很简单了,那就是肾气不足,他自己就撑不住了。

徐文兵:古代的人就意识到了这个问题。

梁冬:徐老师,这样说来,我们每个人生下来就是有一罐气的嘛,有肾精。有没有办法能往进加呢?

徐文兵:有啊。你吃的五谷就是把植物的精转化为你的精。

梁冬:这个东西有没有差别呢?先天和后天是不一样的吗?

徐文兵:先天是你本来有的,但是转化的是把外面的元气转化为你的营养(精的气)就是你说这罐气,就是你在吃饭的同时,饭也在吃你。

梁冬:此话怎讲?

徐文兵:你看风景的时候,风景也在看你。我们把植物、猪肉转化为人肉,把五谷之精转化为脂肪、骨髓这个过程,消耗的是我们三焦的气,元气。你吃的越多,消 耗的越多。但人有个生理高峰,男人在32岁之前,转化的多,消耗的少。所以为了达到这种平衡你是在长个,在积累。32岁以后你还在吃,还在转化,但是漏的 多,补的少,这时候人就呈现一个下降的趋势。

梁冬:是转化能力变差了?

徐文兵:转化和吸收能力都差了。这个转化消耗的就是三焦,我们先天的元气。廉颇老矣,尚能饭否?看一个人还能不能打仗,能不能长寿,看他的饭量就知道了。 如果这个人能吃饭,并且能把吃的饭转化为精气神,这个人年度百岁没问题。皇帝派人看望老将军能不能吃饭,但这老家伙是个奸臣,受人指使,吃倒能吃,吃一顿 饭上三次厕所,看来是不能吸收了,结果还是没用。所以我们一定要注意饮食,这个饮食也是消耗元气的主要方面。前面已经讲到性的行为。下面还会讲,很多人暴 饮暴食,并且吃了很多没用的东西,本来人已经吃饱不想再吃了,但是通过加一些刺激的佐料,多加盐、味精等刺激胃,再吃。这就像那些没有性能力的人吃上春药 再干活一样。把人的精气都透支了,道家有一个观点:人一辈子吃的饭是有定数的,早吃多吃,你早完蛋;慢慢吃少吃点,还活得长。这就是补充肾精的方法:一是 不要让他漏,另外一个是从饮食方面尽可能高效率地把我们吃的东西转化为精,充填我们的脑髓和骨髓。排在第一位的就是五谷之精,可是现在人一说就是我要减 肥,不吃主食,整天就是黄瓜、茄子西红柿,肉也不吃,主食根本不吃,减来减去,先伤精,后伤神,到最后不是厌食就是抑郁。

梁冬:所以现在有些女青年,以减肥为名,晚上就吃水果,好像蛮健康。

徐文兵:五果为助,一点也不健康。分析一下,不论植物还是动物都是把它最精华的东西放到种子里面,怀孕的母亲,胎儿如果缺钙,母亲可以掉牙,她可以脱钙去 给孩子补,这是一种天赋的、伟大的牺牲精神。植物也是这样,水果它最精华的部分在它的种子,绝对不是外面那么厚的皮,苹果那么酸、那么甜就是为了吸引你们 这帮动物顺便把种子吃到肚子里,吃完之后拉肚子作为肥料让它们生长发育,所以苹果的繁体字是“蘋果”,本意是频繁地拉肚子,这是天地造化,我们现在还乐呵 呵在那吃苹果呢,是伤害你自己。梨,梨者痢也,吃完之后也拉肚子,吃水果就这么个作用。真正懂得吃果的是吃硬果,坚果,植物都是把最精华的东西包在那硬硬 的壳里,不让你吃,

梁冬:昂~~~。。呦呦呦呦呦······好了,今天又是酣快淋漓的。。感谢大家收听,下周同一时间再会!拜拜。


原文: http://blog.sina.com.cn/s/blog_4c9ed8bf0100bwij.html

VM(ware)虚拟机中的IO与与真实的到底差多少?

突然想测试一下如果在vmware中IO的情况,给真实的IO之间的差距
1 write throughput
[root@localhost home]# time dd if=/dev/zero of=/home/vm_w bs=4096 count=1000000
1000000+0 records in
1000000+0 records out
4096000000 bytes (4.1 GB) copied, 151.627 seconds, 27.0 MB/s

real 2m33.001s
user 0m0.639s
sys 0m17.486s

2 read /write throughput

[root@localhost home]# time dd if=/home/vm_w of=/home/vm_rw bs=4096 count=1000000
1000000+0 records in
1000000+0 records out
4096000000 bytes (4.1 GB) copied, 246.963 seconds, 16.6 MB/s

real 4m7.686s
user 0m0.309s
sys 0m15.168s

3 read througput

[root@localhost home]# time dd if=/home/vm_w of=/dev/null bs=4096 count=1000000 1000000+0 records in
1000000+0 records out
4096000000 bytes (4.1 GB) copied, 93.7375 seconds, 43.7 MB/s

real 1m33.884s
user 0m0.173s
sys 0m7.655s

对比上次的数据,

[root@rac2 home]# time dd if=/dev/zero of=/home/test_write bs=4k count=1000000 [[A1000000+0 records in
1000000+0 records out
4096000000 bytes (4.1 GB) copied, 67.9907 seconds, 60.2 MB/s

real 1m11.611s
user 0m0.385s
sys 0m8.106s

第二步:read/write throughput 測試:

[root@rac2 home]# time dd if=/home/test_write of=/home/test_rw bs=4k count=1000000
1000000+0 records in
1000000+0 records out
4096000000 bytes (4.1 GB) copied, 99.2975 seconds, 41.2 MB/s

real 1m39.313s
user 0m0.437s
sys 0m10.648s
第三步, read throughput 測試:
[root@rac2 home]# time dd if=/home/test_write of=/dev/null bs=4k count=1000000
1000000+0 records in
1000000+0 records out
4096000000 bytes (4.1 GB) copied, 1.82309 seconds, 2.2 GB/s

real 0m1.824s
user 0m0.306s
sys 0m1.514s

write, read/write 都是几倍的差距可以理解,
read 怎么差距这么呢!为啥子呢!?

2009年3月25日星期三

不要偷懒

读大宝blog文:http://sodme.dev.blog.163.com/blog/static/5478002009225102550800/
我很汗颜

类似的事件,一而再,再而三的发生,如果是第一次,大家还能在嬉笑中过去,那么第二次,我想,就应该从脸红到脚了。甚至,说是无地自容也不为过。

一个项目可以成功,需要方方面面多种因素聚在一起;而一个项目要想失败,只要一个充足的理由即可。让我们这些作技术的人最为汗颜的是,项目的失败再怎么样,也不能因为技术不过关,如果这样,这就不再是项目的失败,而是你我的失败!

为 什么我一再强调安全、安全,还是安全?为什么我这么BT的死掐着一个数据初始化的位置不放?为什么我硬是要把C++写成Pascal?为什么我这么讨厌在 项目中使用所谓的技巧?为什么我见到一段让我在10分钟内读不懂的代码就要不爽?没有其它的原因,就是为了生存!项目的生存,乃至你我的生存!

如果出了问题,不是一句你愧对谁、向谁忏悔就能解决的,那样的解决方式未免也太简单了点,出了问题时就已经晚了,它意味着以前你所有的努力都将白费!它意味着本该属于你的机会可能将从此消失!它意味着本该为你加的薪、升的职也将从此成为泡影!

不要潜规则!不要投机取巧!不要耍小聪明!不要自以为是,觉得自己的算法最精明!最主要的,不要偷懒!否则,对不起,请你走开。

多写一个判断,累不死你,却可以让项目活下去!多作一处日志,累不死你,却可以让我们更早的发现问题!服务器最最主要的,首先是安全和稳定,其次才是性能!性能不高,你还有机会优化;安全和稳定出了问题,你基本上就game over了。


金玉良言,自省!

上士,中士,下士

忽然想起一句話
上士聞道,勤而行之;中士聞道,若存若亡;下士聞道,大笑之。不笑不足以為道。
查了一下是《道德經》四十一章的內容。

全文:
上士聞道,勤而行之;中士聞道,若存若亡;下士聞道,大笑之。不笑不足以為道。故建言有之:明道若昧;進道若退;夷道若類;上德若谷;大白若辱;廣德若不足;建德若偷;質真若渝;大方無隅;大器晚成;大音希聲;大象無形;道隱無名。夫唯道,善貸且成。

其他的還沒有琢磨明白呢,見笑啊。

原來老祖早就由這般言論,真是無話可說。

記錄之,自勉!

rpm -e specifies multiple packages 的處理辦法

工作中要刪掉xen的包,但是出現兩個,相同的名字,干不掉,如何是好呢?
[root@rac1 VM]# rpm -e xen-libs-3.0.3-64.el5
error: "xen-libs-3.0.3-64.el5" specifies multiple packages
error: "xen-libs-3.0.3-64.el5" specifies multiple packages
man rpm
...
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
[--notriggers] [--repackage] [--test] PACKAGE_NAME ...

[root@rac1 VM]# rpm -e --allmatches --nodeps xen-libs-3.0.3-64.el5
error: Failed dependencies:
libxenstore.so.3.0 is needed by (installed) libvirt-0.3.3-7.0.1.el5.i386
libxenstore.so.3.0()(64bit) is needed by (installed) libvirt-0.3.3-7.0.1.el5.x86_64
libxenstore.so.3.0()(64bit) is needed by (installed) libvirt-python-0.3.3-7.0.1.el5.x86_64
libxenstore.so.3.0()(64bit) is needed by (installed) virt-viewer-0.0.2-2.el5.x86_64
不行,再接再厲
rpm -e --allmatches --nodeps xen-libs-3.0.3-64.el5
ok!

-------------------------------------------------------------------
總覺得上面的方法比較野蠻一點,即使瀉了,心裡也覺得不是很乾淨。
今天我又測試了一下,其實可以這樣:
rpm -qa |grep xen
xen-libs-3.0.3-64.el5
xen-libs-3.0.3-64.el5
kernel-xen-devel-2.6.18-92.el5

你看出現兩個相同的packege,其實,基本上服務器端都是用64bit系統了,所以
他們的package一般是安裝兩個,分別是x86_64, i386, 分別對應64bitOS, 32bit系統,我說的是最大路貨intel/AMD pc架構的server/pc

因此在卸載package的時候在後面添加相應的package就可以了例如:
[root@rac2 ~]# rpm -e libvirt-python-0.3.3-7.0.1.el5.x86_64
[root@rac2 ~]#
[root@rac2 ~]# rpm -e xen-libs-3.0.3-64.el5.x86_64
error: Failed dependencies:
libxenstore.so.3.0()(64bit) is needed by (installed) libvirt-0.3.3-7.0.1.el5.x86_64
[root@rac2 ~]# rpm -e libvirt-0.3.3-7.0.1.el5.x86_64
[root@rac2 ~]# rpm -e xen-libs-3.0.3-64.el5.x86_64
即可了,這裡我把沒用的i386也幹掉了,我覺得是垃圾:)
[root@rac2 ~]# rpm -e xen-libs-3.0.3-64.el5
error: Failed dependencies:
libxenstore.so.3.0 is needed by (installed) libvirt-0.3.3-7.0.1.el5.i386
6
[root@rac2 ~]# rpm -e libvirt-0.3.3-7.0.1.el5.i386
[root@rac2 ~]# rpm -e xen-libs-3.0.3-64.el5
[root@rac2 ~]#


[root@rac2 ~]# rpm -qa |grep xen
kernel-xen-devel-2.6.18-92.el5
[root@rac2 ~]# rpm -qa |grep kernel-xen-devel-2.6.18-92.el5
kernel-xen-devel-2.6.18-92.el5

[root@rac2 ~]# rpm -e kernel-xen-devel-2.6.18-92.el5
[root@rac2 ~]# rpm -qa |grep xen

乾淨了 !
-------------------------------------------------------------
以此類推,估計其他的rpm包也是這個樣子的,記錄之!

2009年3月24日星期二

linux 下host的用法備忘

host可以實現了類似nslookup的功能,簡單方便,下面是常用的幾個
[root@rac2 ~]# host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 209.85.143.147
www.l.google.com has address 209.85.143.104
www.l.google.com has address 209.85.143.99

[root@rac2 ~]# host -t NS google.com
google.com name server ns2.google.com.
google.com name server ns1.google.com.
google.com name server ns3.google.com.
google.com name server ns4.google.com.


[root@rac2 ~]# host -t MX google.com
google.com mail is handled by 10 smtp4.google.com.
google.com mail is handled by 10 smtp1.google.com.
google.com mail is handled by 10 smtp2.google.com.
google.com mail is handled by 10 smtp3.google.com.



[root@rac2 ~]# host -t SOA google.com
google.com has SOA record ns1.google.com. dns-admin.google.com. 2009032300 7200 1800 1209600 300

[root@rac2 ~]# host 209.85.143.99
99.143.85.209.in-addr.arpa domain name pointer ti-in-f99.google.com.

其他可以效法之,備忘記錄一下

基準測試1-Gnu dd篇(即DISK IO)

從上次學習了Fenng同學的演講,對自己以前的工作做了一下檢討,爲了做到心中有底,學習一下測試的技巧,以後工作中可能會用到,今天學習dd
dd ,或 Gnu dd主要是對系統IO進行的吞吐量throughput進行測試

1,write 測試
[root@rac2 home]# time dd if=/dev/zero of=/home/test_write bs=4k count=1000000 [[A1000000+0 records in
1000000+0 records out
4096000000 bytes (4.1 GB) copied, 67.9907 seconds, 60.2 MB/s

real 1m11.611s
user 0m0.385s
sys 0m8.106s

另一個窗口是iostate的結果
[root@rac2 ~]# iostat 1 100
Linux 2.6.18-92.el5 (rac2) 03/25/2009

avg-cpu: %user %nice %system %iowait %steal %idle
1.17 0.00 1.07 6.89 0.00 90.88

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 18.09 593.05 7944.87 1947100 26084682

avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 1.50 98.00 0.00 0.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 118.00 0.00 118928.00 0 118928

avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 2.50 53.50 0.00 43.50

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 127.00 8.00 107864.00 8 107864

avg-cpu: %user %nice %system %iowait %steal %idle
1.00 0.00 17.91 81.09 0.00 0.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 121.78 0.00 113005.94 0 114136

avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 1.51 98.49 0.00 0.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 117.00 0.00 119272.00 0 119272

avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 1.00 99.00 0.00 0.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 117.00 0.00 119808.00 0 119808

avg-cpu: %user %nice %system %iowait %steal %idle
1.49 0.00 32.84 64.18 0.00 1.49
...

sata的disk, dell的pc, 看一樣子是 60MB/s (B=byte b=bit)

第二步:read/write throughput 測試:

[root@rac2 home]# time dd if=/home/test_write of=/home/test_rw bs=4k count=1000000
1000000+0 records in
1000000+0 records out
4096000000 bytes (4.1 GB) copied, 99.2975 seconds, 41.2 MB/s

real 1m39.313s
user 0m0.437s
sys 0m10.648s



iostate取中間的一段:
...
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 559.00 134520.00 24.00 134520 24

avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 8.00 69.50 0.00 22.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 479.21 84483.17 1037.62 85328 1048

avg-cpu: %user %nice %system %iowait %steal %idle
0.51 0.00 13.13 78.79 0.00 7.58

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 472.00 110424.00 4608.00 110424 4608

avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 1.99 63.68 0.00 34.33

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 109.00 512.00 108544.00 512 108544

avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 1.98 60.89 0.00 36.63

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 118.00 0.00 120832.00 0 120832

avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 1.50 48.50 0.00 50.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 116.00 0.00 117760.00 0 117760

avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 1.50 75.50 0.00 23.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 119.00 1800.00 113680.00 1800 113680

avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.50 70.35 0.00 29.15

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 185.00 0.00 90904.00 0 90904

avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 2.00 49.00 0.00 48.50

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 224.00 512.00 24784.00 512 24784

avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 12.94 73.13 0.00 13.43

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 534.00 126568.00 5864.00 126568 5864

...

第三步, read throughput 測試:
[root@rac2 home]# time dd if=/home/test_write of=/dev/null bs=4k count=1000000
1000000+0 records in
1000000+0 records out
4096000000 bytes (4.1 GB) copied, 1.82309 seconds, 2.2 GB/s

real 0m1.824s
user 0m0.306s
sys 0m1.514s

超快的結果! iostat還沒有反映過來結束了!
[root@rac2 ~]# iostat 1 100
Linux 2.6.18-92.el5 (rac2) 03/25/2009

avg-cpu: %user %nice %system %iowait %steal %idle
0.99 0.02 1.21 8.33 0.00 89.45

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 23.32 1412.55 9241.57 5677404 37144258

avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.00 100.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0

avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.50 0.00 0.00 99.50

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 2.00 0.00 24.00 0 24

avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.00 100.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0

avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 0.00 0.00 0.00 99.50

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 1.98 0.00 79.21 0 80

avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.00 100.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 2.00 0.00 40.00 0 40

avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.50 0.00 0.00 99.50

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 3.00 0.00 32.00 0 32

avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.00 100.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 8.00 0.00 168.00 0 168

avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 6.50 0.00 0.00 93.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0

avg-cpu: %user %nice %system %iowait %steal %idle
9.50 0.00 41.00 0.00 0.00 49.50

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 8.00 0.00 184.00 0 184

avg-cpu: %user %nice %system %iowait %steal %idle
5.50 0.00 28.50 0.00 0.00 66.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0

avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 1.00 0.00 0.00 99.00

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 43.00 0.00 496.00 0 496

以上是普通的pc, sata硬盤的
還沒有完以後有心得再寫!
準備在溫習一下bonnie, bonnie++
學習一下:iozone http://www.iozone.org/

參考:
http://www.dbanotes.net/database/linux_io_benchmark_tools_compare.html
http://morphis.spaces.live.com/blog/cns!10886869AD52662A!1058.trak
http://hi.baidu.com/thinkinginlamp/blog/item/3f310c336edcfcfc1a4cff8a.html

2009年3月23日星期一

浅谈可扩展的MySQL数据库设计-整理

聽了一個視頻關於mysql的 http://www.infoq.com/cn/presentations/fengdahui-mysql
冯大辉,就职于阿里巴巴集团旗下支付宝(中国)网络科技有限公司(Alipay.com),担任数据库架构师,负责支付宝数据库架构规划、解决方案等相关 工作。2007 年国内首批 Oracle ACE. 网上 ID 为“Fenng”,业余时间关注 Web 2.0 网站架构技术。个人Blog:http://www.dbanotes.net
這個哥們也是我比較欽佩的人之一。
整理如下:當然不全,不過有些東西是我原來犯過的錯誤:),很有意義!
以後工作中可以用上。


scale up and scale out
scale up 我的理解就是硬件上的升級;
scale out 可能對與無論是開發人員還是數據庫管理人員都是有一定的要求的,也就是下面要注意的東西:比如一些技巧,和架構上的調整;

一定要做基準測試,很多公司和個人都不愿意做基準測試,怕麻煩,其實應該做一下,在不同場景下的基準測試,心裡有個底。
最基本的基準測試包括:
IO, 文件系統的基準測試
網絡基準測試
Cache基準測試
App基準測試

對於IO,最簡單使用dd這個配合一些參數即可完成。
無論是那個廠家的產品,你心裡一定要有數,他們說的不算,你要實際的測試一下才可以
很多時候技能跟人有關係(是新手還是老手)跟公司(設備廠商)沒有關係

nfs的一些參數的設定還是很有講究的

網路基準測試:
最簡單的辦法就是dd結合ftp 壓一下。

如果應用上線前沒有進行基準測試,以後再找問題的所在就麻煩了,牽扯到生產環境的應用,對其肯定有影響。

Cache的基準測試:
Cache的命中率, 難點在於數據量大的情況下,模擬是一個比較難的事情

Mysql持久性connection
建議儘量使用pconnection(持久性connection),如果使用非持久connection可能在數據量大的應用上出現連接風暴,
比如用戶大規模上線,用戶大規模下線,對應用衝擊是很大的。
在能控制總的數據庫連接的情況下,最好使用pconnection.我的理解是“儘量減輕數據庫顛簸”。

選取合適的數據類型
老生常談的問題, 但是也有一定意義。n多老DBA陰溝翻船的事。
主要是Mysql不允許在線DDL,(Mysql5不知道是否支持),帶來的問題就是,在應用跑過一段時間后,對相關表的修改是比較痛苦的過程。
可以想象一下:幾百萬用戶上線的情況下,修改表結構,肯定會造成用戶體驗上的影響。
建議,前期,可用可不用的加上去,避免後期添加的麻煩。
一個例子:
ipv4如果用varchar來存取,耗費空間
Tip:
eg:ip2long()/ long2ip() 存儲整數而非字符串
效果會好一些。

非關係型數據的存儲選擇
.圖片
--
.HTML內容的處理
--把html的放到db是糟糕的設計;
--圖片使用hash映射的機制
--數據庫存圖片,後期的處理很糟糕,非關係的處理
.行存儲vs. 列存儲
sebytes BI
列存儲

分區和sharding(分片)
mysql中就沒有分區;現在已經有了這個能力,性能不好說;

分區能解決的問題;分區是數據庫比較核心的功能,
可能都遇到,數據庫過對歷史的問題會很糟糕!
歷史數據在一個籃子里,比較麻煩

分區的物理屬性
mysql的分區的能力,不評價,有這個能力了
目前mysql還沒有全局索引,
sharding--分片,分庫;很多網站都在用
China-mobile--用戶的數據就分開了

拋棄存儲過程封裝業務邏輯的思路:
有些開發人員,用存儲熟了,外面用php,java調用就可以了,
所有的記賬系統都是在數據庫上(存儲過程),等業務到了一定的時候
麻煩來了,很少有人即懂業務,又懂數據庫, 還懂業務。

所以,業務邏輯儘量不要放在database中進行,在app中就可以了,要不問題在後面

合理的使用cache
cache用的很多也不是好事情,
最常見的,應用場景,read多, cache, 跟經驗值有關係

在不同的點放上cache有關係
在那個點上加入cache是有講究的。

2009年3月22日星期日

Git 相關知識

Git是分布式的版本控制系統,linux創始人搞的,早就聽說了,一直沒有研究,今天用到了,記錄一下
url: http://git-scm.com/
安裝三部曲:
./configure
make
make install

簡單應用:

Cloning and Creating a Patch

$ git clone git://github.com/git/hello-world.git
$ cd hello-world
$ (edit files)
$ git add (files)
$ git commit -m 'Explain what I changed'
$ git format-patch origin/master


Creating and Commiting

$ cd (project-directory)
$ git init
$ (add some files)
$ git add .


自己的例子:
[root@localhost software]# git clone git://github.com/tonyg/rabbiter.git
Initialized empty Git repository in /root/software/rabbiter/.git/
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 8 (delta 0), reused 8 (delta 0)
Receiving objects: 100% (8/8), 8.87 KiB, done.


$ git commit -m 'Initial commit'

The Art of worldly wisdom Study 3

keep Matters in suspense
凡事宜保持悬疑

successes that are novel win admiration.
新颖的成功最能赢得钦佩
Being too obvious is neither useful or tasteful. By not declaring yourself immediately you will keep people guessing, especially if you position is important enough to awaken expectations. Mystery by its very  arcaneness causes veneration. Even when revealing yourself, avoid total frankness,  and don't let everyone look inside you.
Cautious silence is where prudence take refuge. Once declared, resolutions are never esteemed, and they lie open to criticism. if they turn out badly, you will be twice unfortunate. If you want people to watch and wait on you, imitate the divinity.


2009年3月21日星期六

大将南征胆气豪 腰横秋水雁翎刀

送毛伯温 明世宗(嘉靖)
大将南征胆气豪 腰横秋水雁翎刀
风吹鼍鼓山河动 电闪旌旗日月高
天上麒麟原有种 穴中蝼蚁岂能逃
太平待诏归来日 朕与先生解战袍

昨日看〈三联生活周刊〉介绍刘伯承刘帅的文章,其中写到在百万雄师过大江的前夕,引用了“大将南征胆气豪 腰横秋水雁翎刀 ”
可以想像那个场景,这个诗句,何等气魄!

“冬不服裘,雨不张盖” 说的是他的做人。
我查了一下出处:
《三略·上略》:
上略: 軍讖曰:軍井未達,將不言渴。軍幕未辦,將不言倦。軍灶未炊,將不言飢。冬不服裘,夏不操扇,雨不張蓋,是謂將禮。與之安,與之危,故其眾,可合而不可離,可用而不可疲,以其恩素蓄,謀素合也。故曰:蓄恩不倦,以一取萬。

其中谈到小平同志,说他很少读书,但是知识渊博,善于从别人谈话中汲取营养(也许人家看书的时候,你不知道而已)。高人啊!

我记得有人说过“读万卷书不如行万里路,行万里路不如阅人无数,阅人无数不如自己去悟”
想想看,这其实是个人成长的路线图。

无知啊,我!看来每个伟人之所以成为伟人,都有自己做人做事的准则,而且这个在常人看来又是非常之高。

纪录一下,自勉。

2009年3月20日星期五

轉 Security Concept R

R.

RAT遠端存取特洛伊木馬程式
RAT是利用網路遠端控制他人電腦的惡意程式,駭客可藉由此木馬程式侵入被害電腦進其犯罪行為,如監視、竊取機密資料、變更資料等。

relay轉寄
轉寄,是指主機電腦轉發信件的功能。當主機電腦提供轉寄服務時,使用者可以透過電腦使用轉寄信件給其他人,但是企業多半會在主機提供轉寄服務的同時,也設定了轉發位址的限制,以避免企業的主機電腦成為廣告郵件濫發的轉寄站。

remote control遠端控制
遠端遙控是指利用別處的電腦連線至某電腦進行操作,例如課堂上教師遙控學生電腦。而遠端遙控的作法也常被駭客濫用成犯罪工具,譬如駭客會籍由植入木馬程式遙控受害人電腦。

rounding Down去尾法
與『薩拉米技術』同屬駭客竊取財務的犯罪手法,常被利用於財務資料的犯罪中。『去尾法』的犯罪方式是將數字四捨五入至最小整數後,才竊取其小數點後的尾數。因竊取的金額很小,交易單位不易發現,駭客可藉此將這些金額竊取轉至犯罪者的帳戶中。

补充:


reference monitor

the reference monitor is an abstract machine that mediates all access subject have to objects, both to ensure that the subjects have the necessary access rights and to protect the objects from unauthorized access and destructive modification. For a system to achieve a higher level of trust, it must require subjects( programs , users, or processes) to be fully authorized prior to accessing an object( file, program, or resource). A subject must not be allowed to use a requested resource until the subject has proven it has been granted access privileges to use the requested object. the reference monitor is an access control concept, not an actual physical component, which is why it is normally referred to as the "reference monitor concept" or an "abstract machine".

--cissp all in one 4th



The Art of worldly wisdom Study 2

Character and intelligence.

the poles you talent spins on, displaying your gifts. One without the other brings only half of success. it isn't enough to be intelligent; you must also have the right character. the fool fails by behaving without regard to his condition, position, origin, or friendship.

你的能力即以此二者为轴,展现你的天赋。两者缺一,成功减半。
徒有才智不足成事,你还必须性格得当。
愚蠢之人所以失败,在于行事不顾条件,地位,出身和友群。

character -- 性格
intelligence -- 才智
pole --轴
talent --能力
gift -- 天赋
... behaving without regard to ... 行事不顾

The Art of worldly wisdom Study 1

All has reached perfection, and becoming a true person is the greatest perfection of all.

天地万物都臻(zhen)至完美, 而修成完人是最大的完美

It takes more to make one sage today than it did to make the seven of Greece.
And you need more resources to deal with a single person these days than with an entire nation in times past.
当今之世, 成就一为圣贤,所需功夫多于造就希腊七贤, 今天单与一人周旋,所需资源多于过去与整个国家周旋。

true person -- 完人;
sage --n. 圣, 贤 adj. 贤能的,明智的


发现这本书无论是英文还是中译都太好了,写下学习笔记,无论是英文还是中文。
出自〈智慧书〉  中文翻译: 彭淮栋(台湾) 先生


2009年3月19日星期四

CISSP Concept study 6

151 what is need to know?
need to know is the requirement to have access to , knowledge of or possession of data or a resource in order to perform specific work tasks.

152 what principle states that users should be granted the least amount of access to the secure environment as possible for them to be able to complete their work tasks?

Principle of least privilege

153 what are due care and due diligence?
due care is using reasonable care to protect the interest of an organization.
Due diligence is practicing the activities that maintain the due care effort.

154 how are security and illegal activities related?
A secure environment should provide mechanism to prevent the committal of illegal activities, which are action that violate a legal restriction, regulation, or requirement.

155 With what level of security precautions should backup media be treated?
Backup media should be handled with the same security precautions as any other asset with the same data classification.

156 what are the goals of managing backup media?
preventing disclosure, destruction, or alteration

157 what are the processes that can e applied to used media in order to prepare them for reuse in various environments?

Erasing, clearing, and overwriting media that will be used in the same classification environments; purging, sanitization, and degaussing if media is used in different classification environments
purge --清除
sanitization--处理
degaussing -- 消磁


158 what are the five classifications of security control types?
Directive, preventative, detective, corrective, and recovery.

什么是五个级别的安全控制类型?
指令,预防,侦测,纠正,并恢复。

159 what is the purpose of auditing?
to ensure compliance with security policy and to detect abnormalities,
unauthorized occurrences, or outright crimes
以确保遵守安全政策和检测异常,
未经授权的情况发生,或直接罪行

160 what types of activities are labeled as auditing?
Recording of event/occurrence data, examination of data, data reduction, use of event/occurrence alarm triggers, log analysis, logging, monitoring, using alert, intrusion detection

记录的事件/发生的数据,检查数据,数据压缩,请使用事件/事件触发报警,日志分析,记录,监测,使用警报,入侵检测

161 what is the purpose of compliance testing? 兼容性测试
To ensure that all of the necessary and required elements of a security solution are properly deployed and functioning as expected
为了确保所有必要的和必要的组成部分是正确的安全解决方案部署和运作不如预期

162 how are audit trails used?
to reconstruct an event, to extract information about an incident, to prove or disprove culpability
审计跟踪是如何使用?
重建一个事件,提取信息的事件,以证明或推翻有罪

163 what types of activities can be used as penetration tests?
war dialing, sniffing, eavesdropping, radiation monitoring, dumpster diving, social engineering, port scanning, ping scanning
哪些类型的活动可作为渗透测试?
战争拨号,监听,窃听,无线电监测,翻垃圾堆,社会工程,端口扫描,ping扫描

164 what are some ways to keep inappropriate content to a minimum?
address the issue in the security policy, perform awareness training, use content filtering tools to filter or word content
有什么方法来使不适当的内容降到最低限度?
解决这一问题的安全政策,执行意识的培训,使用的内容过滤工具,来筛选或文字内容

165 why is it important to protect against resource waste?
if the storage space, computing power, or networking bandwidth capacity is consumed by inappropriate or non-work-related(non-profit-producing) data, the organization loses money.
以防止资源浪费为什么很重要?
如果存储空间,运算能力,或网络带宽的能力是消费的不适当或与工作无关(非营利生产)的数据,该组织在赔钱。

166 why is it important to protect against privilege abuse?
it can cause the disclosure of sensitive information, violating the principle of confidentiality.
为什么它很重要,以防止滥用特权?
它可能导致泄露敏感信息,违反了保密原则。


167 what countermeasure are moderately effective against errors and omissions?
Input validators and user training
什么对策是适度有效地打击错误和遗漏?
输入校验器和用户培训

168 how can you protect data against fraud and theft?
the use of access controls ( auditing and monitoring , for example) reduce fraud and theft
你怎么能保护数据免受诈骗和盗窃?
使用访问控制(审计和监测,例如)减少欺诈和盗窃

169 what are some safeguards against sabotage?
Intensive auditing, monitoring for abnormal or unauthorized activity, keeping lines of communication open between employees and managers, and compensating and recognizing employees for excellence.

有哪些保障措施,防止破坏行为?
强化审计,监测异常或未经授权的活动,维持员工和管理人员之间的畅通的通信线路,并认可卓越雇员。

170 why isn't there an effective direct countermeasure against the threat of malicious hackers or crackers?

most safeguards and countermeasures protect against one specific threat or another, but it is not possible to protect against all possible threats that a cracker represents

为什么不能有一个有效的直接对策的威胁,恶意黑客或破解?
最安全保障和防范措施的一个具体的威胁或其他,但它是不可能的,以防止一切可能的威胁,黑客代表

171 what is malicious code?
malicious code is any script or program that performs an unwanted, unauthorized, or unknown activity on a computer system


172 true or false? Senior management should be included in the BCP process from the beginning?
True

173 what resource is in greatest demand during the BCP testing, training, and maintenance process?
manpower
什么是最大的资源需求的BCP测试,培训和维修程序?
人力资源

174 what type of decision making is mainly concerned with metrics such as dollar values and downtime?
quantitative

什么样的决策,主要是关注的指标,如资金投入和停机时间?
定量

175 what Business Impact Assessment variable is used to describe the longest period of time a resource can be unavailable without causing irreparable harm to the business?
Maximum tolerable downtime(MTD)
什么商业影响评估的变数是用来描述时间最长的资源可以使用,而不会造成不可弥补的损害的业务?
最高可承受停工(最大耐受量)

CISSP Concept study 5

126 who issues digital certificates?
certificate authorities(CAs)

127 true or false? PEM provides protection against replay attacks.
False

128 what protocol uses the RSA encryption algorithm to provide encrypted mail support for a number of common commercial email packages?
S/MIME

129 True or false? S-HTTP secures individual messages between a client and a server
True

130 What cryptographic methods are used by the Secure Electronic Transaction (SET) protocol?
RSA public key Cryptography and DES private key cryptography in connection with digital certificates.

131 what are the four components of IPSec?
Authentication header, Encapsulating Security Payload, IP Payload Compression protocol, and Internet Key Exchange.

132 what type of cryptographic attack is used against algorithms that don't incorporate temporal protections?
Replay attack.

133 what are some common reasons a certificate might need to be revoked?
the certificate was compromised, the certificate was erroneously issued, the certificate details changed, and there was a change of security association.

134 what type of cryptography relies upon the use of public and private keys?
Asymmetric -- having two sides that are different in shape

135 what technology allows multiple users to make use of the same process without interfering with each other?
Multithreading

136 what is the maximum number of processors that an SMP system can utilize?
16
137 what are some of the terms used to describe the CPU mode that gives access to the full range of supported instructions?
system mode, privileged mode, supervisory mode, and kernel mode.

138 what is the greatest security risk to RAM chips?
theft

139 what addressing scheme supplies the CPU with the actual address of the memory location to be accessed?
Direct addressing

140 magnetic / optical media devices are classified as what type of memory?
secondary

141 magnetic /optical media devices are classified as what type of storage?
secondary

142 memory devices designed to retain their data when power is removed are know as nonvolatile

143 what two ways can storage devices be accessed?
Randomly and sequentially

144 what is the greatest security risk to computer monitors?
Tempest technology

145 what is another term often used for firmware?
Microcode
146 where are the operating system-independent primitive instructions that a computer needs to start and load the operating system stored?
BIOS

147 what concept ensure that data existing at one level of security is not visible to processes running at different security levels?
Data hiding

148 what are the important factors in personnel management?
Hiring practices, ongoing job performance reviews, and termination procedures

149 what security mechanisms are countermeasures to collusion?
job rotation, separation of duties, mandatory vacations强制休假, workstation change.

150 why is antivirus protection important?
viruses are the most common form of security breach in the IT world.
any communications pathway can and is being exploited as a delivery mechanism for a virus or other malicious code.

去掉配制配制文件(*.conf) 或类似文本文件注释的方法

在很多服务的配制文件有很多的注释,有时候看的头晕,如何处理呢?

以oracle的initSID.ora的文件为例
cat initSID.ora |grep -v ^# |grep -v ^$ > /tmp/aaa.txt
然后修改就可以了

从一个oracle高人那里学来的, 试验,纪录之。

dns设置技巧

新公司要作个试验用到dns, 把以前的旧文翻出来,整理一下,备忘一下。

/etc/named.conf
options{
directory "/var/named";
recursion no; ---不用递归方式进行查询
};
即刻进行 no-recursion方式的查询操作

2 limiting concurrent recursive clients
options {
directory "/var/named";
recursive-clients 500;
};

补充一下,所谓recursion --递归方式主要是client-->(dns) server的查询方式
所谓Iterative 迭代方式是dns server -> dns server之间的查询
为什么禁掉递归呢, 主要是不希望该dns服务器 被client使用,特别是公司对外服务的dns, 为了稳定,只向dns server 开放,减少压力。





限定了查询的用户数
the default limit is 1,000 recursive clients

参考资料:Oreily: DNS and Bind cookbook
Discussion:
with recursive-clients you can limit the number of recursive queries a name server will handle concurrently. a named server receives recursive queries both from resolvers and from the name server that use it as a forwarder. since each recursive query consumes about 20k of memory, the totoal amount of memory needed to serive 1,000 queriers -- the defualt limits --is about 20mb. if a name server doesn't have that much real memory available, you may need to set its limit lower.

3 仅允许在本地网络进行 arbitray domain names
options{
directory "/var/named";
allow-query { localnets;
};

2009年3月18日星期三

CenterOS5.2 下vmware server 2.0 安裝

[root@rac1 VM]# rpm -ivh VMware-server-2.0.0-122956.x86_64.rpm
Preparing... ########################################### [100%]
1:VMware-server ########################################### [100%]

The installation of VMware Server 2.0.0 for Linux completed successfully.
You can decide to remove this software from your system at any time by
invoking the following command: "rpm -e VMware-server".

Before running VMware Server for the first time, you need to
configure it for your running kernel by invoking the
following command: "/usr/bin/vmware-config.pl".

Enjoy,

--the VMware team

[root@rac1 VM]# /usr/bin/vmware-config.pl
Making sure services for VMware Server are stopped.

Stopping VMware autostart virtual machines:
Virtual machines [FAILED]
Stopping VMware management services:
VMware Virtual Infrastructure Web Access
VMware Server Host Agent [FAILED]
Stopping VMware services:
VMware Authentication Daemon [ OK ]
Virtual machine monitor [ OK ]

You must read and accept the End User License Agreement to continue.
Press enter to display it.
...

Do you accept? (yes/no) yes

Thank you.

The bld-2.6.18-8.el5-x86_64smp-RHEL5 - vmmon module loads perfectly into the
running kernel.

The bld-2.6.18-8.el5-x86_64smp-RHEL5 - vmci module loads perfectly into the
running kernel.

The bld-2.6.18-8.el5-x86_64smp-RHEL5 - vsock module loads perfectly into the
running kernel.

Do you want networking for your virtual machines? (yes/no/help) [yes] yes

Configuring a bridged network for vmnet0.

Please specify a name for this network.
[Bridged]
Your computer has multiple ethernet network interfaces available: eth0, eth0:1.
Which one do you want to bridge to vmnet0? [eth0]

The following bridged networks have been defined:

. vmnet0 is bridged to eth0

Do you wish to configure another bridged network? (yes/no) [no]

Do you want to be able to use NAT networking in your virtual machines? (yes/no)
[yes]

Configuring a NAT network for vmnet8.

Please specify a name for this network. [NAT]

Do you want this program to probe for an unused private subnet? (yes/no/help)
[yes]

Probing for an unused private subnet (this can take some time)...

The subnet 192.168.146.0/255.255.255.0 appears to be unused.

The following NAT networks have been defined:

. vmnet8 is a NAT network on private subnet 192.168.146.0.

Do you wish to configure another NAT network? (yes/no) [no]


Do you want to be able to use host-only networking in your virtual machines?
[yes]

Configuring a host-only network for vmnet1.

Please specify a name for this network.
[HostOnly]
Do you want this program to probe for an unused private subnet? (yes/no/help)
[yes]

Probing for an unused private subnet (this can take some time)...
The subnet 192.168.176.0/255.255.255.0 appears to be unused.

The following host-only networks have been defined:

. vmnet1 is a host-only network on private subnet 192.168.176.0.

Do you wish to configure another host-only network? (yes/no) [no]

The bld-2.6.18-8.el5-x86_64smp-RHEL5 - vmnet module loads perfectly into the
running kernel.

Please specify a port for remote connections to use [902]

Do you want this program to set up permissions for your registered virtual
machines? This will be done by setting new permissions on all files found in
the "/etc/vmware/vm-list" file. [no]

Please specify a port for standard http connections to use [8222]
Please specify a port for secure http (https) connections to use [8333]

The current administrative user for VMware Server is ''. Would you like to
specify a different administrator? [no]

Using root as the VMware Server administrator.

In which directory do you want to keep your virtual machine files?
[/var/lib/vmware/Virtual Machines]

The path "/var/lib/vmware/Virtual Machines" does not exist currently. This
program is going to create it, including needed parent directories. Is this
what you want? [yes]

Do you want to enter a serial number now? (yes/no/help) [no]

Creating a new VMware VIX API installer database using the tar4 format.

Installing VMware VIX API.

In which directory do you want to install the VMware VIX API binary files?
[/usr/bin]
In which directory do you want to install the VMware VIX API library files?
[/usr/lib/vmware-vix/lib]

The path "/usr/lib/vmware-vix/lib" does not exist currently. This program is
going to create it, including needed parent directories. Is this what you want?
[yes]

In which directory do you want to install the VMware VIX API document pages?
[/usr/share/doc/vmware-vix]

The path "/usr/share/doc/vmware-vix" does not exist currently. This program is
going to create it, including needed parent directories. Is this what you want?
[yes]

The installation of VMware VIX API 1.6.0 build-122956 for Linux completed
successfully. You can decide to remove this software from your system at any
time by invoking the following command: "/usr/bin/vmware-uninstall-vix.pl".

Enjoy,

--the VMware team

Starting VMware services:
Virtual machine monitor [ OK ]
Virtual machine communication interface [ OK ]
VM communication interface socket family: [ OK ]
Virtual ethernet [ OK ]
Bridged networking on /dev/vmnet0 [ OK ]
Host-only networking on /dev/vmnet1 (background) [ OK ]
DHCP server on /dev/vmnet1 [ OK ]
Host-only networking on /dev/vmnet8 (background) [ OK ]
DHCP server on /dev/vmnet8 [ OK ]
NAT service on /dev/vmnet8 [ OK ]
VMware Server Authentication Daemon (background) [ OK ]
Shared Memory Available [ OK ]
Starting VMware management services:
VMware Server Host Agent (background) [ OK ]
VMware Virtual Infrastructure Web Access
Starting VMware autostart virtual machines:
Virtual machines [ OK ]

The configuration of VMware Server 2.0.0 build-122956 for Linux for this
running kernel completed successfully.

大體跟vmware server 1.0.x差不多

管理用web方式
缺省端口8222
能跑了,後面遇到問題繼續。

2009年3月17日星期二

zip文件過大,linux不能用unzip解壓的處理辦法

在win下面傳了一個zip文件到linux環境下面,用unzip居然打不開,如下:
[root@rac1 VM]# unzip RAC-PostCreateDatabase.zip
error: Zip file too big (greater than 4294959102 bytes)
Archive: RAC-PostCreateDatabase.zip
warning [RAC-PostCreateDatabase.zip]: 1391105260 extra bytes at beginning or within zipfile
(attempting to process anyway)
error [RAC-PostCreateDatabase.zip]: start of central directory not found;
zipfile corrupt.
(please check that you have transferred or created the zipfile in the
appropriate BINARY mode and that you have compiled UnZip properly)
[root@rac1 VM]#
太大了,忽然想起java中有一個jar可以打包*.zip文件,那解包呢?
[root@rac1 VM]# jar -xvf RAC-PostCreateDatabase.zip
created: oracle10gShared/
inflated: oracle10gShared/asm1-s001.vmdk
inflated: oracle10gShared/asm1-s002.vmdk
inflated: oracle10gShared/asm1-s003.vmdk
inflated: oracle10gShared/asm1-s004.vmdk
inflated: oracle10gShared/asm1-s005.vmdk
...
居然成了,小技巧,很滿足!
記錄一下,以備后查。

XMPP RFCs

留個記號
http://xmpp.org/rfcs/
公司最近要做IM相關的開發,覺得有研究xmpp的標準的必要。
以備后查!

簡體中文,在繁體XP上看不到的解決辦法

在linux下面使用
iconv -f gbk -t utf8 1.txt -o 1.utf8.txt
解釋一下

-f --源文件格式(from)
-t --目標文件格式(to)

1.txt --源文件
1.utf8.txt --目標文件

將其轉換為utf8就可以看到了
記錄一下!

"人之贤不肖譬如鼠矣,在所自处耳."----秦.李斯

据说,在李斯当小官时,曾到厕所里方便,看到老鼠偷粪便吃,人和狗一来,老鼠就慌忙逃走了。过了不久,他在国家的粮仓里又看到了老鼠,这些老鼠整日里大摇大摆地吃粮食,长得肥肥胖胖的,而且安安稳稳,不用担惊受怕。他两相比较,十分感慨地说:人之不贤不肖,譬如鼠矣,在所自处耳。

意思是说,人有能与无能,就好像老鼠一样,全靠自己想办法,有能耐就能做官仓里的老鼠,无能就只能做厕所里的老鼠

通俗版本的,轉:
公元前238年,李斯第一次登上了中国历史的大舞台。他此时的角色,只不过是扮演一名小得不能再小的公务员,在楚国上蔡郡里做看守粮仓的小文书,饱食终日,无所事事,浑浑噩噩,不知老之将至。他最大的爱好就是在上班时间溜号,牵着自家养的一条黄色的土狗,带着自己年幼的儿子,出上蔡东门,到野外追逐狡兔。上蔡郡是一个小城,李斯生于斯,长于斯,并一直认为自己将和自己的祖父、父亲一样,死于斯,葬于斯。外面的世界,对他来说并没有清晰的概念。李斯有一个幸福美满的家庭,房子不大,但已足够居住,薪俸不高,但尚算衣食无忧。老实说,就这么过一辈子也是蛮蛮好的一件事情。在投胎人世的时候,阎王爷如果也肯给你这样一份合同,我相信,十个人里头有七八个都会毫不犹豫的签字画押的。不知不觉间,青春年华在悠闲缓慢的生活中渐渐逝去,意志在平淡无奇的日子里悄悄消磨。总之,在此时的李斯同学的身上,没有任何迹象表明,他将在未来的二十多年里,占据在中国历史舞台的中央,扮演着显赫的男二号,享受着最好的灯光和机位,拥有着最多的特写和对白。
  然而,一件偶然而有趣的事情发生了。李斯同学多少有些洁癖,几乎从不在吏舍的公共厕所内方便。这天,他忽然内急,忍,强忍,再忍,一再忍,直到不敢再忍。他捧着肚子,弯腰夹腿,直奔吏舍厕而去。厕所里的几只老鼠正不无哀怨地吃着粪便,见有人来,吓得惊惶逃窜。李斯同学无暇多想,先畅快淋漓地解决了内急问题。
  有些人上厕所只是为了清空肚腹,有些人上厕所却可以在清空肚腹之余,还能悟出一番道理。这不,李斯同学在边系裤带边往回走时,悲叹起厕所中那几只惊恐的老鼠来,它们“食不絜,近人犬,数惊恐之”。推此及彼,自己所管粮仓里的老鼠,却可以“食积粟,居大庑之下,不见人犬之忧。”李斯把他的这一发现告诉了跟他坐一个办公室的范伟,范伟说:“是的,我也注意到了,我就纳闷,同样是老鼠,差距咋就这么大呢?”得,问了白问。要找到答案,还是得靠自己。
  李斯是一个极其认真的人,他决定将厕鼠和仓鼠的贫富差距作为一个课题来研究,为此,他作了一个实验。实验很简单,他把仓鼠抓住,关在厕所里,再把厕鼠抓住,关在粮仓里。三天之后,他来检查实验成果。Guess what?曾经的仓鼠现在也“食不絜,近人犬,数惊恐之”,曾经的厕鼠现在则“食积粟,居大庑之下,不见人犬之忧。”此情此景,李斯不由百感交集,说出了他在中国历史舞台上的第一句台词:“人之贤不肖譬如鼠矣,在所自处耳!”
  通过这次实验,李斯明白了一个道理:“鼠在所居,人固择地。”他开始反省自己迄今为止的一生。我是谁?我从哪里来,要到哪里去?我活了二十多年,都活了些什么?看看自己身边,尽多是庸庸碌碌之徒。难道我也要和他们一样,朝生暮死,无声无息?一想到此,李斯浑身泛起一阵神圣的战栗。他趴在地上,一阵干呕。
  大丈夫于人世间,有两个问题必须问问自己,活着时怎样站着?死去时怎样躺着?留在上蔡郡,他将注定一事无成。他将被胡乱埋葬在某个乱坟堆里,他的名字只会被他的儿女们偶尔提起,而等到他的儿女们也死去了,他的肉体已早已在棺椁里腐朽烂透,他的名字也将不会被世间的任何一个人所记起。到那时,上天入地,也找不到半点李斯存在过的痕迹。正所谓“君子疾没世而名不称焉”。一股熊熊的野心之火燃烧在他死寂了二十余年的心中。他感觉到,名利的野兽正在他的体内苏醒,并向他发号施令。而他,也将乐意遵从。往者不可谏,来者犹可追。于是,他作出了一个决定:离开偏僻贫瘠的上蔡郡,到能让他建功立业、名垂青史的地方去。

2009年3月16日星期一

好文转: 认识汉字——思想

思,繁体字写作“恖”,“心”的上面加“囟”,“囟”代表大脑。道家认为,脑为先天“元神之府”,心为后天“识神之府”,所以,“思”几乎涵盖了
人的所有心理活动,是仅次于“悟”的层次。
  思是不及物动词,想是及物动词。思是自思,也就是考虑自己的事。想是相思、他顾,也就是考虑自身以外的事物。所以习惯上说“我想你”,而不是“我思你”;我“自思”,而不是我“自想”。
  思代表本能、欲望。《素问·热论》:“十日太阴病衰,腹减如故,则思饮食。”用思来表示食欲。《素问·痿论》中云:“思想无穷,所愿不得,意淫于外,入房太甚,宗筋弛纵,发为筋痿,为白淫。”这里的思说的是性欲。
  另外,思是“七情”之一,与喜、怒、忧、悲、恐、惊并列,属于人之常情。激烈和过度的情绪变化,就会影响心包和心的功能,进而影响脏腑、气机的运行。
《素问·阴阳应象大论》中说:“思伤脾。”《素问·举痛论》:“思则气结。”《灵枢·本神》说:“怵惕思虑者则伤神,神伤则恐惧,流淫而不止。”
  在更深的感情层面上,思表现为相思、爱慕,严重的就是相思病。这是后天意识与先天情欲之间的共同作用,也就是所谓的勾魂,所以失恋的人被称为失魂落魄。
  《灵枢·本神》:“心有所忆谓之意,意之所存谓之志。因志存变谓之思,因思远慕谓之虑,因虑而处物谓之智。”举例来讲,手碰到火的时候很快缩回来,这种本能反应是无意识的,不经过思考的,被称为“觉”。有了被火烫的经历,以后就会远远躲开火,这就是“识”。自己没被火烫过,但是看到类似的场面,或者被人告诉过类似的经验,这就是“知”。掌握知的方法,就是“学”。实践所学的知识,就是“习”。记住了感觉或知识,形成了记忆,就是“志”。
  大多数动物都会发展到这个层面。但是人类的伟大在于“心有所忆”,“因志存变”,也就是在觉、知、志的基础上,通过自己的独立思考、变通,形成意识和思想。就火而言,人类通过思考,晓知利害,不仅不再畏火,反而学会了用火取暖、炙烤食物、治疗疾病、吓阻野兽,甚至学会了钻木取火,这就是人类思想之伟大。
  有个小故事说,久居深山的小和尚进城第一次见到女人,问老和尚那是什么。老和尚吓唬他说:“那是吃人的老虎。”晚上回到了深山寺院,小和尚翻来覆去睡不着,老和尚问他怎么了,小和尚说他想老虎。女人触动的是小和尚先天的本能、元神,而老和尚灌输给小和尚的是后天的思想、意识。两者如果矛盾对立的话,人就会迷惑、痛苦。
  人生一世,不可能让思想完全顺应先天本能,那样的话与动物无异。大马哈鱼为了洄游产卵,牺牲自身为后代提供营养。公螳螂交配后即被雌螳螂啃食。那些恣情纵欲,酗酒,服用春药的人似乎顺应了本能,但是耗散了真精,湮灭了神
明,缩短了生命。
  人类不能无限度孳生扩张自己的思想,压抑本性,违背自然、人生之道,更不用说那些基于错觉、幻觉、谬识、伪知上形成的思想,更会给自身和社会带来灾难。老子说过:“不尚贤,使民不争。不贵难得之货,使民不为盗。不见可欲,使民心不乱。”可是今天,人们从小被灌输的思想就是竞争、斗争、名利、货殖、攀比等等,很多人忘记本性,但“竞逐荣势,企踵权豪,孜孜汲汲,惟名利是务;崇饰其末,忽弃其本,华其外而悴其内。”(《伤寒论·序》)。这些人真的需要改变价值观,进行一些“忘我”的治疗了。这个“我”就是被后天环境塑造的
假我。
  《素问·上古天真论》中提到了一个理想的做人境界,那就是先天本能欲望和后天意识思想的完美统一结合:“其次有圣人者,处天地之和,从八风之理,适嗜欲于世俗之间,无恚嗔之心,行不欲离于世,被服章,举不欲观于俗,外不劳形于事,内无思想之患,以恬淡为务,以自得为功,形体不敝,精神不散,亦可以百数。”

原文: http://blog.sina.com.cn/s/blog_4c9ed8bf01000a09.html

好文转: 认识汉字——意志

“意”和“志”都是名词,是心理活动“忆”的结果。“忆”的繁体字写作
“憶”。《灵枢·本神》中说:“心有所忆谓之意,意之所存谓之志。”
  人有多种心理活动,最浅的层次是欲。饿欲食,渴欲饮,冷欲暖,热欲凉,
精满欲交合,腹满欲便溺,困乏欲眠,气力足欲行走等等。这种心理活动是先天
本能,是生理影响心理,不教而会,不学而能。
  再深层次的心理活动是情,也就是情绪变化《素问·灵兰秘典论》中说
“膻中者,臣使之官,喜乐出焉。”一般情绪的变化可能仅仅影响心包,剧烈的
情绪变化就会直接影响心神,进而影响全身气血运行。《灵枢·口问》:“悲哀
忧愁则心动,心动则五脏六腑皆摇。”导致“怒则气上,喜则气缓,悲则气消,
恐则气下,惊则气乱,思则气结(《素问·举痛论》)”,甚至出现“怒伤肝,
喜伤心,思伤脾,恐伤肾,悲伤肺(《素问·阴阳应象大论》)”。
  比较高层次的心理活动是“感”,就是情感活动,即所谓的动情,诸如爱恨
情仇、贪嗔痴怨等。
如果说七情六欲仅仅是动物本能的话,感情似乎为人类所独
有。比如情爱,“问世间情为何物?只叫人生死相许。”动情生爱直接触及人的
心神,让人产生如痴如醉、欲仙欲死的感觉,沉醉其中不能自拔,一旦丧失,便
失魂落魄,如行尸走肉。
  人的心理活动最高级层次就是“”,或称觉悟、顿悟,其结果就是通神。
《素问·八正神明论》中歧伯说:“神乎神,耳不闻,目明心开而志先,慧然独
悟,口弗能言,俱视独见适若昏,昭然独明,若风吹云,故曰神。”
  我们要说的“忆”是介于“感”与“悟”之间的心理活动。简单地说,“忆”
就是思考。忆的结果是“意”,意是出生以后人为训练培养出来的意识、思维、
思想。古人将意归于后天之本脾,认为“脾藏意”。被保存的记忆是“志”,比
如永志不忘、日志等等。古人认为“肾藏志”,这和肾主骨生髓、脑为髓海有直
接关系。现代人所说的志,变成了志向、愿望的意思。

  人类没有虎豹的尖牙利爪,马鹿的奔跑逃逸速度,仅仅依赖本能很难生存。
所幸有意识思维,懂得利用火焰、工具以趋利避害。所幸有记忆,得以代代相传,
增益累积。所以意志是人类最可宝贵的财富。意是后天培养形成的,所以和生存、
生长的环境有很大的关系。现代有很多呆傻的狼孩、猴孩的报道,恰恰证明,不
经过后天的教养,人与低级动物言行无异。
  意的最初阶段是识,也就是辨识、意识。目辨色,耳辨音,鼻辨臭,舌辨味,
身辨觉。进而辨利害、美丑、善恶等等,形成判断。得到意的主要手段是“学”,
通过学来掌握前人积累的经验教训。学的重要手段就是背诵,以此来大量存贮知
识,即“志”。有了知识以后还需要亲身实践,使得死板的知识融会贯通,为我
所用,此所谓“习”。通过学习,再加上自己独立的思考,就会形成自己的思想。
正如荀子所言:“学而不思则罔,思而不学则殆。”
  表达意的方法,一般是言语、文字、图画等。但是这种表述、表达往往不尽
全面,甚至有所失真、歪曲,所以古人有词不达意、言不由衷、只可意会不可言
传等说法。《庄子·天道》中称:“语之所贵者,意也;意有所随,意之所随者,不可以言传也。”陶渊明有诗云:“此中有真意,欲辩已忘言。”所以古人传授
思想往往是口传心授,强调心领神会,这是近乎通神的一种境界。隋唐间名医许
胤宗“每疗,无不愈”,人问曰:“公医术若神,何不著书以贻将来?”胤宗答
道:“医者,意也,在人思虑。又脉候幽微,苦其难别,意之所解,口莫能宣。
且古之名手,唯是别脉,脉既精别,然后识病……脉之深趣,即不可言,虚设经
方,岂加于旧。吾思之久矣,故不能著述耳。”《后汉书·郭玉传》:“郭玉对曰:医之为言意也。腠理至微,随气用巧,针石之间,毫芒即乖。神存于心手之
际,可得解而不可得言也。”郭玉所说的就是后天意识与先天神明相通的一种境
界。
  人为的思想、意识如果符合自然之道的话,我们称之为“德”。违反自然之
道的思想,可谓“无德”。养生处世之道,不过就是调和后天的意志与先天本能、神明的关系。“志意者,所以御精神,收魂魄,适寒温,和喜怒者也。(《灵枢·本藏论》)”
  可惜从古至今,很多人不是“以酒为浆,以妄为常,醉以入房,以欲竭其精,以耗散其真,不知持满,不时御神,务快其心”,就是“思想无穷,所顾不得,意淫于外”,最终结果只能是“半百而衰”。

原文:http://blog.sina.com.cn/s/blog_4c9ed8bf010009zo.html~type=v5_one&label=rela_nextarticle