<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ritto&#039;s blog - 技术, 生活</title>
	<atom:link href="http://www.ritto.cn/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ritto.cn</link>
	<description>又一个 WordPress 博客</description>
	<lastBuildDate>Fri, 24 Feb 2012 06:38:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>中国骨干网络结构概述</title>
		<link>http://www.ritto.cn/chinanet/</link>
		<comments>http://www.ritto.cn/chinanet/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 02:43:40 +0000</pubDate>
		<dc:creator>ritto</dc:creator>
				<category><![CDATA[Linux 相关]]></category>
		<category><![CDATA[chinanet]]></category>

		<guid isPermaLink="false">http://www.ritto.cn/?p=805</guid>
		<description><![CDATA[Chinanet 骨干网的拓扑结构逻辑上分为两层，即核心层和大区层。

1.1 核心层

核心层由北京、上海、广州、沈阳、南京、武汉、成都、西安等8个城市的核心节点组成。

<span class="readmore"><a href="http://www.ritto.cn/chinanet/" title="中国骨干网络结构概述">阅读全文——共2186字</a></span>]]></description>
			<content:encoded><![CDATA[<p>Chinanet 骨干网的拓扑结构逻辑上分为两层，即核心层和大区层。<br />
1.1 核心层<br />
核心层由北京、上海、广州、沈阳、南京、武汉、成都、西安等8个城市的核心节点组成。<br />
核心层的功能主要是提供与国际internet的互联，以及提供大区之间信息交换的通路。其中北京、上海、广州核心层节点各设有两台国际出口路由器，负责与国际i nternet互联，以及两台核心路由器与其他核心节点互联；其他核心节点各设一台核心路由器。<br />
核心节点之间为不完全网状结构。以北京、上海、广州为中心的三中心结构，其他核心节点分别以至少两条高速ATM链路与这三个中心相连。<br />
<span id="more-805"></span><br />
1.2 大区层<br />
全国31个省会城市按照行政区划，以上述8个核心节点为中心划分为8个大区网络，这8个大区网共同构成了大区层。每个大区设两个大区出口，大区内其它非出口节点分别与两个出口相连。<br />
大区层主要提供大区内的信息交换以及接入网接入chinanet的信息通路。<br />
大区之间通信必须经过核心层。<br />
2． 路由协议<br />
当前路由政策国际部分采用BGP4与国外其它网络进行路由交换，国内部分采用BGP4进行与省网内进行地址交换，而采用IS-IS进行骨干网内部的路由选择。<br />
2 . 1 BGP<br />
BGP是域间路由协议。Chinanet骨干网申请的自治域号为4134，Chinanet作为一个独立的自治域，采用BGP路由协议与国际 internet及各省接入网交换路由信息。骨干网内路由器之间是I BGP，骨干网和国外及接入网之间是EBGP。但是IBGP路由在自治域内只会向前传递一次，所以IBGP路由器之间需要具有全网状连接，才能保证每台路由器都收到完整的路由，但是骨干网内路由器数量很多，做全网状连接是不现实的，因此骨干网采用B GP Confedration 的方法；对内将骨干网用私有AS号划分为9个私有AS域，每一个小的自治域中，IBGP采用全网状的联接方式，自治域之间为EBGP联接方式。对外通过B GP Confedration将这些AS集合成一个独立的AS 4134。这样，ChinaNET骨干网就采用AS 4134分别与国际Internet以及各省网交换路由信息，在内部用私有AS号交换路由。<br />
2 . 2 ISIS<br />
ISIS是一种IGP(内部网关协议)，通过ISIS路由协议可以对从BGP学来的nexthop进行寻径。<br />
在ChinaNET骨干网中使用single IGP。即核心层及八个大区层网络中使用同一个Tag(core)的IS-IS。采用Single IGP的好处是所有的IS-IS路由器可以正常地交换IS-IS路由信息。如果采用不同的Tag，则不同tag下的isis彼此交换路由，需要 redistrib ute，这将导致许多不必要的麻烦。<br />
2.1.1 AREA的划分<br />
ISIS路由协议是一种link state路由协议，它的一个特点就是在一个域内可以分为很多个区，如果一台路由器的路由表发生变化，它就会向本区内的其他路由器广播这一变化，直到同一区内的所有路由器都将形成一张完全相同的本区的拓扑图为止。由于C hinaNET骨干网路由器及链路数量很多，如果所有路由器都在一个区的话，每一条路由的变化，都会导致全网的路由器进行路由更新，这将大大降低网络的效率。因此根据骨干网的网络结构状况，将c hinanet划分为九个IS-IS域，核心层网络与八个大区层网络分别处于一个独立的区域内。这样就将链路状态的频繁变化对网络的影响限制于一个区域内部，而不致于对全网产生影响。<br />
2.1.2 Level-1和Level-2路由<br />
在ISIS中，路由可分为两类：level-1和level-2。level-1的链路信息可以从level-2的链路上广播，而level-2的链路信息不可以从level -1的链路上广播。level-1的路由和level-2的路由在路由器内分别在两个数据库中。如果某台路由器只有level-1路由的数据库，则称为l evel-1 router ，反之为level-2路由器。level-1 router只和与它具有相同area id的路由器交换路由信息，而level-2路由器可以和与它具有相同area id的路由器交换路由信息。如果level-1 router发现IP包的目的地址与它的area id 不同，它就会将此包自动转发到离它最近的(并不一定最好)的level-2路由器上。区分level-1和level-2路由可以减少路由交换的数量，提高网络的效率。<br />
2.1.3 ISIS metric<br />
ISIS 的路由选择通过metric实现，metric值越小越优先。Metric的范围为0～63，缺省为10。目前Chinanet骨干网根据主要根据链路带宽的大小设置m etric的优先级，带宽越大，metric值越小，这样网络可以动态地优先选择大带宽的路径。<br />
2.1.4 静态路由和直连路由的广播<br />
路由器上设置的静态路由，为了使它加入到ISIS的路由表中去，需要将静态路由redistribute进ISIS中。同样，在isis core 的边缘上路由器，如国际出口链路和大区与接入之间链路，也需要redistribute进ISIS。<br />
Redistribute的原则是：国际和核心路由器redistribute进level-2，大区出口路由器redistribute进level-1和level-2，大区内路由器r edistribute进level-1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ritto.cn/chinanet/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>批量编码转换脚本cp936转utf8[原创]</title>
		<link>http://www.ritto.cn/cp936-utf8/</link>
		<comments>http://www.ritto.cn/cp936-utf8/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 12:57:15 +0000</pubDate>
		<dc:creator>ritto</dc:creator>
				<category><![CDATA[Shell 编程]]></category>
		<category><![CDATA[Linux 技 术]]></category>
		<category><![CDATA[utf8]]></category>

		<guid isPermaLink="false">http://www.ritto.cn/?p=800</guid>
		<description><![CDATA[根据行政部需求，需要把samba中共享的文件夹名称由原来的英文 ”share” 改成中文的 ”行政部” 几个字. samba配置的是Win2003域控验证, 原来在samba中设置的编码为 cp936, 在samba的共享的文件夹中均能够正常显示中文。

&#160;

&#160;

<span class="readmore"><a href="http://www.ritto.cn/cp936-utf8/" title="批量编码转换脚本cp936转utf8[原创]">阅读全文——共1996字</a></span>]]></description>
			<content:encoded><![CDATA[<p>根据行政部需求，需要把samba中共享的文件夹名称由原来的英文 ”share” 改成中文的 ”行政部” 几个字.<br /> samba配置的是Win2003域控验证, 原来在samba中设置的编码为 cp936, 在samba的共享的文件夹中均能够正常显示中文。<span id="more-800"></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<pre># 20080816 ritto.
[global]
   workgroup = SBZ
   server string = mis
   password server = 192.168.5.10
   encrypt passwords = yes
   realm = SBZ.COM
   security = ads
   idmap uid = 16777216-33554431
   idmap gid = 16777216-33554431
   winbind separator = /
   template homedir = /home/%D/%U
   template shell = /bin/bash
   #template shell = /sbin/nologin
   winbind use default domain = true
   winbind offline logon = true
   winbind enum users = yes
   winbind enum groups = yes 

   smb passwd file = /etc/samba/smbpasswd
   nt acl support = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successful 

   disable spoolss = yes
   log file = /var/log/samba/%m.log 

   dos charset = cp936
   unix charset = cp936
   display charset = cp936 

   wins server = 192.168.5.10 

[share]
        comment = share
        inherit acls = yes
        path = /data0/share
        force user = share
        force group = share
        force create mode = 0664
        force directory mode = 0775
        public = no
        valid users = sbz.com/ritto.zhao,sbz.com/eva.huang
        write list =  sbz.com/ritto.zhao,sbz.com/eva.huang
</pre>
<p>在上面的 [share] 直接改成 [行政部]之后，发现 samba不能启动了，查来查去才发现是samba不认中文，最后将samba中指定的编码改成utf8, 才可以正常启动.</p>
<p>更改的部分如下:</p>
<ol>
<li>   dos charset = UTF8</li>
<li>   unix charset = UTF8</li>
<li>   display charset = UTF8</li>
<li>&#8230;&#8230;</li>
<li>[行政部]</li>
<li>        comment = 行政部</li>
<li>        inherit acls = yes</li>
<li>        path = /data0/share</li>
<li>        force user = share</li>
<li>        force group = share</li>
<li>        force create mode = 0664</li>
<li>        force directory mode = 0775</li>
<li>        public = no</li>
<li>valid users = sbz.com/ritto.zhao,sbz.com/eva.huang</li>
<li>        write list =  sbz.com/ritto.zhao,sbzcom/eva.huang</li>
</ol>
<p>改好之后，samba支持中文了，也可以正常启动了。</p>
<p>可是，之前定义为cp936时，共享文件夹中的一些带中文的文件及文件夹全部乱码了，不能显示显示了。</p>
<p>于是，需要将之前的文件编码由cp936改成utf8了.</p>
<p>脚本如下(网上搜集的，很好用):</p>
<ol>
<li>#/bin/sh</li>
<li>var=0</li>
<li>echo $var</li>
<li>execing () {</li>
<li>local dir=$1</li>
<li>var=`expr $var + 1`</li>
<li>echo $var $dir</li>
<li>shift</li>
<li>while [ "$1" ]</li>
<li>do</li>
<li>    echo $dir/$1</li>
<li>    if [ -d "$dir/$1" ]</li>
<li>    then</li>
<li>        execing $dir/$1 `ls $dir/$1`</li>
<li>    fi</li>
<li>     convmv &#8211;notest -f cp936 -t utf8 $dir/$1</li>
<li>    shift</li>
<li>done</li>
<li>}</li>
<li>execing $1 `ls $1`</li>
</ol>
<p>转换正常，文件又恢复成正常的中文了，哈哈</p>
<p>本文出自 “<a href="http://ritto.blog.51cto.com/">ritto&#8217;s blog</a>” 博客，请务必保留此出处<a href="http://ritto.blog.51cto.com/427838/731803">http://ritto.blog.51cto.com/427838/731803</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ritto.cn/cp936-utf8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>svn备份脚本[原创]</title>
		<link>http://www.ritto.cn/svn-bak/</link>
		<comments>http://www.ritto.cn/svn-bak/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 12:54:42 +0000</pubDate>
		<dc:creator>ritto</dc:creator>
				<category><![CDATA[Shell 编程]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.ritto.cn/?p=796</guid>
		<description><![CDATA[Subversion的备份脚本. 在这里备份一下.

在地备份完成之后，再通过ftp传送一份至远程备份机.



<span class="readmore"><a href="http://www.ritto.cn/svn-bak/" title="svn备份脚本[原创]">阅读全文——共1187字</a></span>]]></description>
			<content:encoded><![CDATA[<p>Subversion的备份脚本. 在这里备份一下.</p>
<p>在地备份完成之后，再通过ftp传送一份至远程备份机.<span id="more-796"></span></p>
<ol>
<li>#!/bin/sh</li>
<li># subversion backup for freebsd8.</li>
<li># Created by ritto.zhao.</li>
<li># 2009-04-23</li>
<li>SVNDIR=/data/svn</li>
<li>SVNADMIN=/usr/local/bin/svnadmin</li>
<li>DATE=`date +%Y-%m-%d`</li>
<li>OLDDATE=`date -v -30d +%Y-%m-%d`</li>
<li>IP=`ifconfig | grep ”inet” | grep -v ”inet6&#8243; | grep -v ”127.0.0.1&#8243; | awk &#8217;{ print $2 }&#8217;`</li>
<li>BACKDIR=/data/backup/svn-backup</li>
<li>[ -d ${BACKDIR} ] || mkdir -p ${BACKDIR}</li>
<li>LogFile=${BACKDIR}/svnbak.log</li>
<li>[ -f ${LogFile} ] || touch ${LogFile}</li>
<li>if [ ! -d ${BACKDIR}/${DATE} ]; then</li>
<li>   mkdir ${BACKDIR}/${DATE}</li>
<li>fi</li>
<li>if [ -d ${BACKDIR}/${OLDDATE} ]; then</li>
<li>   rm -rf ${BACKDIR}/${OLDDATE}</li>
<li>fi</li>
<li>echo ” ” &gt;&gt; ${LogFile}</li>
<li>echo `date +”%Y-%m-%d %H:%M:%S”` &gt;&gt; ${LogFile}</li>
<li>echo ”***Subversion Backup Notification***” &gt;&gt; ${LogFile}</li>
<li>/usr/bin/printf ”Host:    `hostname`\nAddress: ${IP}\nDate:    ${DATE}\n” &gt;&gt; ${LogFile}</li>
<li>for PROJECT in rest report android eblast</li>
<li>do</li>
<li>  cd ${SVNDIR}</li>
<li>  ${SVNADMIN} hotcopy ${PROJECT} ${BACKDIR}/${DATE}/${PROJECT} &#8211;clean-logs</li>
<li>  cd ${BACKDIR}/${DATE}</li>
<li>  tar zcvf ${PROJECT}_svn_${DATE}.tar.gz ${PROJECT} &gt; /dev/null</li>
<li>  rm -rf ${PROJECT}</li>
<li>  echo ”Repository: ${PROJECT} backup done into ${BACKDIR}/${DATE}/ Successful!” &gt;&gt; ${LogFile}</li>
<li>  /bin/sleep 2</li>
</ol>
<p><a href="http://ritto.blog.51cto.com/427838/729917">http://ritto.blog.51cto.com/427838/729917</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ritto.cn/svn-bak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql备份脚本(线上使用的)[原创]</title>
		<link>http://www.ritto.cn/mysql-bak/</link>
		<comments>http://www.ritto.cn/mysql-bak/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 12:52:18 +0000</pubDate>
		<dc:creator>ritto</dc:creator>
				<category><![CDATA[Shell 编程]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.ritto.cn/?p=793</guid>
		<description><![CDATA[线上使用的mysql备份脚本,使用mysqldump备份，在mysql master上使用的。

在本地备份完成之后，同时传输一份备份文件至远程的ftp服务器上，实现异地备份.

本机保存20天的备份文件, 远端保存60天的备份文件.

<span class="readmore"><a href="http://www.ritto.cn/mysql-bak/" title="mysql备份脚本(线上使用的)[原创]">阅读全文——共1883字</a></span>]]></description>
			<content:encoded><![CDATA[<p>线上使用的mysql备份脚本,使用mysqldump备份，在mysql master上使用的。</p>
<p>在本地备份完成之后，同时传输一份备份文件至远程的ftp服务器上，实现异地备份.</p>
<p>本机保存20天的备份文件, 远端保存60天的备份文件.</p>
<p>脚本在服务器上运行了快两年了，很稳定.</p>
<p><a href="http://blog.51cto.com/attachment/201111/151613228.jpg" target="_blank"><img src="http://blog.51cto.com/attachment/201111/151613228.jpg" alt="" border="0" /></a></p>
<p>我的nagios也很忠诚，哈哈.<span id="more-793"></span></p>
<p><a href="http://blog.51cto.com/attachment/201111/151848952.jpg" target="_blank"><img src="http://blog.51cto.com/attachment/201111/151848952.jpg" alt="" border="0" /></a></p>
<p>&nbsp;</p>
<p># 建立备份用户.</p>
<ol class="dp-sql">
<li class="alt"><span><span>mysql&gt; </span><span class="keyword">grant</span><span> </span><span class="keyword">select</span><span>,lock tables,reload,super,file,show </span><span class="keyword">view</span><span> </span><span class="keyword">on</span><span> *.* </span><span class="keyword">to</span><span> </span><span class="string">&#8216;mysqlbackup&#8217;</span><span>@</span><span class="string">&#8216;localhost&#8217;</span><span> identified </span><span class="keyword">by</span><span> </span><span class="string">&#8216;mysql_ritto&#8217;</span><span>; </span></span></li>
<li><span>mysql&gt; flush <span class="keyword">privileges</span><span>; </span></span></li>
</ol>
<p><span style="color: #339966;"># 脚本如下.</span></p>
<ol class="dp-sql">
<li class="alt"><span><span>#!/bin/bash </span></span></li>
<li><span> </span></li>
<li class="alt"><span>USERNAME=mysqlbackup </span></li>
<li><span><span class="keyword">PASSWORD</span><span>=mysql_ritto </span></span></li>
<li class="alt"><span> </span></li>
<li><span><span class="keyword">DATE</span><span>=`</span><span class="keyword">date</span><span> +%Y-%m-%d` </span></span></li>
<li class="alt"><span>OLDDATE=`<span class="keyword">date</span><span> +%Y-%m-%d -d </span><span class="string">&#8216;-20 days&#8217;</span><span>` </span></span></li>
<li><span>FTPOLDDATE=`<span class="keyword">date</span><span> +%Y-%m-%d -d </span><span class="string">&#8216;-60 days&#8217;</span><span>` </span></span></li>
<li class="alt"><span style="color: #000000;"><br />
</span></li>
<li><span> </span></li>
<li class="alt"><span>MYSQL=/usr/<span class="keyword">local</span><span>/mysql/bin/mysql </span></span></li>
<li><span>MYSQLDUMP=/usr/<span class="keyword">local</span><span>/mysql/bin/mysqldump </span></span></li>
<li class="alt"><span>MYSQLADMIN=/usr/<span class="keyword">local</span><span>/mysql/bin/mysqladmin </span></span></li>
<li><span>SOCKET=/tmp/mysql.sock </span></li>
<li class="alt"><span> </span></li>
<li><span>BACKDIR=/data/backup/db </span></li>
<li class="alt"><span>[ -d ${BACKDIR} ] || mkdir -p ${BACKDIR} </span></li>
<li><span>[ -d ${BACKDIR}/${<span class="keyword">DATE</span><span>} ] || mkdir ${BACKDIR}/${</span><span class="keyword">DATE</span><span>} </span></span></li>
<li class="alt"><span>[ ! -d ${BACKDIR}/${OLDDATE} ] || rm -rf ${BACKDIR}/${OLDDATE} </span></li>
<li><span> </span></li>
<li class="alt"><span><span class="keyword">for</span><span> DBNAME </span><span class="op">in</span><span> mysql db1 db2 db3 </span></span></li>
<li><span>do </span></li>
<li class="alt"><span>   ${MYSQLDUMP} <span class="comment">&#8211;opt &#8211;master-data=2 &#8211;tz-utc=true -u${USERNAME} -p${PASSWORD} -S${SOCKET} ${DBNAME} | gzip &gt; ${BACKDIR}/${DATE}/${DBNAME}-backup-${DATE}.s l.gz</span><span> </span></span></li>
<li><span>   logger <span class="string">“${DBNAME} has been backup successful - $DATE”</span><span> </span></span></li>
<li class="alt"><span>   /bin/sleep 5 </span></li>
<li><span>done </span></li>
<li class="alt"><span> </span></li>
<li><span> </span></li>
<li class="alt"><span>HOST=10.1.2.22 </span></li>
<li><span>FTP_USERNAME=db1 </span></li>
<li class="alt"><span>FTP_PASSWORD=db1_ritto </span></li>
<li><span> </span></li>
<li class="alt"><span>cd ${BACKDIR}/${<span class="keyword">DATE</span><span>} </span></span></li>
<li><span> </span></li>
<li class="alt"><span>ftp -i -n -v &lt;&lt; ! </span></li>
<li><span><span class="keyword">open</span><span> ${HOST} </span></span></li>
<li class="alt"><span><span class="func">user</span><span> ${FTP_USERNAME} ${FTP_PASSWORD} </span></span></li>
<li><span>bin </span></li>
<li class="alt"><span>cd ${FTPOLDDATE} </span></li>
<li><span>mdelete * </span></li>
<li class="alt"><span>cd .. </span></li>
<li><span>rmdir ${FTPOLDDATE} </span></li>
<li class="alt"><span>mkdir ${<span class="keyword">DATE</span><span>} </span></span></li>
<li><span>cd ${<span class="keyword">DATE</span><span>} </span></span></li>
<li class="alt"><span>mput * </span></li>
<li><span>bye </span></li>
<li class="alt"><span>! </span></li>
</ol>
<p><span style="color: #339966;"># 备份后的目录结构是这个样子的.</span></p>
<ol class="dp-sql">
<li class="alt"><span><span>[root@db1 db]# ls </span></span></li>
<li><span>2011-11-10  2011-11-12  2011-11-14  2011-11-16  2011-11-18  2011-11-20  2011-11-22  2011-11-24  2011-11-26  2011-11-28 </span></li>
<li class="alt"><span>2011-11-11  2011-11-13  2011-11-15  2011-11-17  2011-11-19  2011-11-21  2011-11-23  2011-11-25  2011-11-27  2011-11-29 </span></li>
<li><span>[root@db1 db]# ls -lhtr 2011-11-29/ </span></li>
<li class="alt"><span>total 3.1G </span></li>
<li><span>-rw-r<span class="comment">&#8211;r&#8211; 1 root root 133K Nov 29 02:01 mysql-backup-2011-11-29.sql.gz</span><span> </span></span></li>
<li class="alt"><span>-rw-r<span class="comment">&#8211;r&#8211; 1 root root 1.5G Nov 29 02:06 db1-backup-2011-11-29.sql.gz</span><span> </span></span></li>
<li><span>-rw-r<span class="comment">&#8211;r&#8211; 1 root root  35M Nov 29 02:06 db2-backup-2011-11-29.sql.gz</span><span> </span></span></li>
</ol>
<div><a href="http://ritto.blog.51cto.com/427838/729851">http://ritto.blog.51cto.com/427838/729851</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ritto.cn/mysql-bak/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>linux系统初始化[原创]</title>
		<link>http://www.ritto.cn/linux-init/</link>
		<comments>http://www.ritto.cn/linux-init/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 12:43:33 +0000</pubDate>
		<dc:creator>ritto</dc:creator>
				<category><![CDATA[Linux 相关]]></category>
		<category><![CDATA[Linux 技 术]]></category>

		<guid isPermaLink="false">http://www.ritto.cn/?p=785</guid>
		<description><![CDATA[平时系统初始化用到的，记录一下.

# Linux硬件性能检测.



<span class="readmore"><a href="http://www.ritto.cn/linux-init/" title="linux系统初始化[原创]">阅读全文——共5548字</a></span>]]></description>
			<content:encoded><![CDATA[<p>平时系统初始化用到的，记录一下.</p>
<p># Linux硬件性能检测.</p>
<pre>
<pre class="brush: jscript; title: ; notranslate">&lt;br /&gt;# Download and run:&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;  wget http://aspersa.googlecode.com/svn/trunk/summary&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;  ./summary&lt;br /&gt;</pre>
</pre>
<p><span id="more-785"></span></p>
<pre> </pre>
<p># 系统初始化.</p>
<pre>
<pre class="brush: jscript; title: ; notranslate">&lt;br /&gt;cat &amp;lt;&amp;lt; EOF&lt;br /&gt;+---------------------------------------+&lt;br /&gt;|  === CentOS System Init ===           |&lt;br /&gt;|  OS: `cat /etc/redhat-release`        |&lt;br /&gt;+---------------------------------------+&lt;br /&gt;EOF&lt;br /&gt;&lt;br /&gt;# Update yum.&lt;br /&gt;cd /etc/yum.repos.d&lt;br /&gt;mv CentOS-Base.repo  CentOS-Base.repo.bak&lt;br /&gt;wget http://centos.ustc.edu.cn/CentOS-Base.repo.5&lt;br /&gt;mv CentOS-Base.repo.5 CentOS-Base.repo&lt;br /&gt;&lt;br /&gt;# Update system.&lt;br /&gt;yum clean all&lt;br /&gt;yum -y update glibc\*&lt;br /&gt;yum -y update yum\* rpm\* python\*&lt;br /&gt;yum clean all&lt;br /&gt;yum -y update&lt;br /&gt;&lt;br /&gt;# Enable ntp service.&lt;br /&gt;\cp -f /usr/share/zoneinfo/America/Los_Angeles /etc/localtime&lt;br /&gt;yum -y install ntp&lt;br /&gt;/usr/sbin/ntpdate 0.pool.ntp.org &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;hwclock -w&lt;br /&gt;/etc/init.d/ntpd start&lt;br /&gt;chkconfig --level 35 ntpd on&lt;br /&gt;netstat -na | grep 123&lt;br /&gt;&lt;br /&gt;# Set ulimit.&lt;br /&gt;echo &quot;ulimit -SHn 102400&quot; &amp;gt;&amp;gt; /etc/rc.local&lt;br /&gt;cat &amp;gt;&amp;gt; /etc/security/limits.conf &amp;lt;&amp;lt; EOF&lt;br /&gt;*           soft   nofile       65535&lt;br /&gt;*           hard   nofile       65535&lt;br /&gt;EOF&lt;br /&gt;&lt;br /&gt;# Disable IPv6.&lt;br /&gt;echo &quot;alias net-pf-10 off&quot; &amp;gt;&amp;gt; /etc/modprobe.conf&lt;br /&gt;echo &quot;alias ipv6 off&quot; &amp;gt;&amp;gt; /etc/modprobe.conf&lt;br /&gt;/sbin/chkconfig --level 35 ip6tables off&lt;br /&gt;&lt;br /&gt;# Disable SElinux.&lt;br /&gt;sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/sysconfig/selinux&lt;br /&gt;#sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config&lt;br /&gt;/usr/sbin/setenforce 0&lt;br /&gt;&lt;br /&gt;# Disable crtl+alt+del.&lt;br /&gt;sed -i 's@ca::ctrlaltdel:/sbin/shutdown -t3 -r now@#ca::ctrlaltdel:/sbin/shutdown -t3 -r now@' /etc/inittab&lt;br /&gt;/sbin/init q&lt;br /&gt;&lt;br /&gt;# Bashrc.&lt;br /&gt;cat &amp;gt;&amp;gt; /root/.bashrc &amp;lt;&amp;lt; &quot;EOF&quot;&lt;br /&gt;PS1=&quot;\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[35;40m\]\W\[\e[0m\]]\\$ \[\e[33;40m\]&quot;&lt;br /&gt;EOF&lt;br /&gt;&lt;br /&gt;# Vim.&lt;br /&gt;sed -i &quot;8 s/^/alias vi='vim'/&quot; /root/.bashrc&lt;br /&gt;cat &amp;gt;/root/.vimrc&amp;lt;&amp;lt;EOF&lt;br /&gt;syntax on&lt;br /&gt;set expandtab&lt;br /&gt;set shiftwidth=4&lt;br /&gt;set softtabstop=4&lt;br /&gt;set tabstop=4&lt;br /&gt;EOF&lt;br /&gt;&lt;br /&gt;# Set locale.&lt;br /&gt;#true &amp;gt; /etc/sysconfig/i18n&lt;br /&gt;#cat &amp;gt;&amp;gt;/etc/sysconfig/i18n&amp;lt;&amp;lt;EOF&lt;br /&gt;#LANG=&quot;zh_CN.GB18030&quot;&lt;br /&gt;#SUPPORTED=&quot;zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en&quot;&lt;br /&gt;#SYSFONT=&quot;latarcyrheb-sun16&quot;&lt;br /&gt;#EOF&lt;br /&gt;&lt;br /&gt;# Zh_cn.&lt;br /&gt;sed -i -e 's/^LANG=.*/LANG=&quot;en&quot;/'   /etc/sysconfig/i18n&lt;br /&gt;#sed -i -e 's/^LANG=.*/LANG=&quot;en_US.UTF-8&quot;/'   /etc/sysconfig/i18n&lt;br /&gt;#sed -i -e 's/^LANG=.*/LANG=&quot;zh_CN.GB18030&quot;/'   /etc/sysconfig/i18n&lt;br /&gt;&lt;br /&gt;# Set purview.&lt;br /&gt;chmod 600 /etc/passwd&lt;br /&gt;chmod 600 /etc/shadow&lt;br /&gt;chmod 600 /etc/group&lt;br /&gt;chmod 600 /etc/gshadow&lt;br /&gt;&lt;br /&gt;# Init_ssh.&lt;br /&gt;ssh_cf=&quot;/etc/ssh/sshd_config&quot;&lt;br /&gt;sed -i -e '74 s/^/#/' -i -e '76 s/^/#/' $ssh_cf&lt;br /&gt;sed -i &quot;s/#Port 22/Port 65535/&quot; $ssh_cf&lt;br /&gt;sed -i &quot;s/#UseDNS yes/UseDNS no/&quot; $ssh_cf&lt;br /&gt;# Client.&lt;br /&gt;sed -i -e '44 s/^/#/' -i -e '48 s/^/#/' $ssh_cf&lt;br /&gt;/etc/init.d/sshd restart&lt;br /&gt;&lt;br /&gt;# Turnoff services.&lt;br /&gt;for i in `ls /etc/rc3.d/S*`&lt;br /&gt;do&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;    CURSRV=$(echo $i | cut -c 15-)&lt;br /&gt;&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;    echo ${CURSRV}&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;    case ${CURSRV} in&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;        cpuspeed | crond | irqbalance | microcode_ctl | lvm2-monitor | network | random | readahead_early| sendmail | sshd | syslog | local )&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;	echo &quot;Base services, Skip!&quot;&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;        ;;&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;        *)&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;            echo &quot;change ${CURSRV} to off&quot;&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;            chkconfig --level 235 ${CURSRV} off&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;            service ${CURSRV} stop&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;            echo &quot;&quot;&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;            ;;&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;    esac&lt;br /&gt;done&lt;br /&gt;echo &quot;Turning off Services: OK&quot;&lt;br /&gt;&lt;br /&gt;#------------------------------------------------------------------------------------------&lt;br /&gt;# 优化Linux内核参数. Tune kernel config.&lt;br /&gt;#------------------------------------------------------------------------------------------&lt;br /&gt;# Set sysctl.&lt;br /&gt;true &amp;gt; /etc/sysctl.conf&lt;br /&gt;cat &amp;gt;&amp;gt; /etc/sysctl.conf &amp;lt;&amp;lt; EOF&lt;br /&gt;net.ipv4.ip_forward = 0&lt;br /&gt;net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;net.ipv4.conf.default.accept_source_route = 0&lt;br /&gt;kernel.sysrq = 0&lt;br /&gt;kernel.core_uses_pid = 1&lt;br /&gt;net.ipv4.tcp_syncookies = 1&lt;br /&gt;kernel.msgmnb = 65536&lt;br /&gt;kernel.msgmax = 65536&lt;br /&gt;kernel.shmmax = 68719476736&lt;br /&gt;kernel.shmall = 4294967296&lt;br /&gt;net.ipv4.tcp_max_tw_buckets = 6000&lt;br /&gt;net.ipv4.tcp_sack = 1&lt;br /&gt;net.ipv4.tcp_window_scaling = 1&lt;br /&gt;net.ipv4.tcp_rmem = 4096 87380 4194304&lt;br /&gt;net.ipv4.tcp_wmem = 4096 16384 4194304&lt;br /&gt;&lt;br /&gt;# TCP memory.&lt;br /&gt;net.core.wmem_default = 8388608&lt;br /&gt;net.core.rmem_default = 8388608&lt;br /&gt;net.core.rmem_max = 16777216&lt;br /&gt;net.core.wmem_max = 16777216&lt;br /&gt;net.core.netdev_max_backlog = 262144&lt;br /&gt;net.core.somaxconn = 262144&lt;br /&gt;net.ipv4.tcp_max_orphans = 3276800&lt;br /&gt;net.ipv4.tcp_max_syn_backlog = 262144&lt;br /&gt;net.ipv4.tcp_synack_retries = 1&lt;br /&gt;net.ipv4.tcp_syn_retries = 1&lt;br /&gt;net.ipv4.tcp_tw_reuse = 1&lt;br /&gt;net.ipv4.tcp_timestamps = 0&lt;br /&gt;net.ipv4.ip_local_port_range = 1024 65535&lt;br /&gt;net.ipv4.tcp_mem = 94500000 915000000 927000000&lt;br /&gt;net.ipv4.tcp_fin_timeout = 1&lt;br /&gt;net.ipv4.tcp_keepalive_time = 1200&lt;br /&gt;net.ipv4.tcp_tw_recycle = 1&lt;br /&gt;EOF&lt;br /&gt;&lt;br /&gt;/sbin/sysctl -p&lt;br /&gt;echo &quot;sysctl set OK!&quot;&lt;br /&gt;&lt;br /&gt;# Add 'epel' and 'remi' repo (for CentOS 5).&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;  echo -n &quot;Installing the epel and remi yum repo: &quot;&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;  rpm -i http://http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;  rpm -Uvh http://remi-mirror.dedipower.com/enterprise/remi-release-5.rpm&lt;br /&gt;&lt;br /&gt;# (for CentOS 6).&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;  rpm -Uvh http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm&lt;br /&gt;&lt;%%KEEPWHITESPACE%%&gt;  rpm -Uvh http://remi-mirror.dedipower.com/enterprise/remi-release-6.rpm&lt;br /&gt;</pre>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ritto.cn/linux-init/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>自己动手学装车, 整车调教说明, 新人必看 [转]</title>
		<link>http://www.ritto.cn/diy-bicycle/</link>
		<comments>http://www.ritto.cn/diy-bicycle/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 04:03:52 +0000</pubDate>
		<dc:creator>ritto</dc:creator>
				<category><![CDATA[生 活]]></category>

		<guid isPermaLink="false">http://www.ritto.cn/?p=755</guid>
		<description><![CDATA[随着马路上我们的伙伴越来越多, 脚下的装备越来越强, 勇于折腾的每个车友都不会让自己的车辆有任何的闪失, 好马配好鞍, 马好鞍不正, 还得你蛋疼.

今天, 春哥给广大的新手朋友讲讲新车落地调试, 和新车初段磨合的故事. 如有不足, 欢迎各位老鸟以及专业技师补充, 个人愚见, 不能当做教科书哦&#8230;.

一台整车在出厂之前, 生产线之上已经组装好了大部分配件, 为了更加方便运输, 通常会塞进一个一米二长, 20-30公分宽的纸箱里, 经过多层打包, 并且固定. 这台车就这样来到了各位的眼前.

<span class="readmore"><a href="http://www.ritto.cn/diy-bicycle/" title="自己动手学装车, 整车调教说明, 新人必看 [转]">阅读全文——共4290字</a></span>]]></description>
			<content:encoded><![CDATA[<p>随着马路上我们的伙伴越来越多, 脚下的装备越来越强, 勇于折腾的每个车友都不会让自己的车辆有任何的闪失, 好马配好鞍, 马好鞍不正, 还得你蛋疼.</p>
<p>今天, 春哥给广大的新手朋友讲讲新车落地调试, 和新车初段磨合的故事. 如有不足, 欢迎各位老鸟以及专业技师补充, 个人愚见, 不能当做教科书哦&#8230;.</p>
<p>一台整车在出厂之前, 生产线之上已经组装好了大部分配件, 为了更加方便运输, 通常会塞进一个一米二长, 20-30公分宽的纸箱里, 经过多层打包, 并且固定. 这台车就这样来到了各位的眼前.<span id="more-755"></span></p>
<p>准备工作, 拆开纸箱, (参看如何把大象从冰箱里拿出来) , 所有的部件和保修卡, 配件都拿出来, 散布在宽敞干净地面. 然后, 你所必须的工具, 4号, 5号, 6号, 8号内六角各一支(务必购买质量好的, 前进四路有卖的, 国产的杰科相当不错, 价格4-6元一支) 13号梅花扳手或者活动扳手一吧, 15号开口叉子扳手一把, (环湖的那个扳手就不要了) . T25内六花扳手一支(碟刹车才用) , 剪线钳或者斜口钳一把, 必须锋利, 老虎钳一把, 质量要好.<br />
开动, 从车首开始.<br />
以国内整车为例, 一般把立已经预装, 把横被拆掉.<br />
我们首先将碗组盖, 也叫头盖, 装入, 开始锁紧, 锁紧至车头灵活转动又不至于过紧, 满意后, 继续锁紧25度角, 然后再松15度角, 则碗组预压结束. (为何要压的过紧再松呢? 因为轴承结构的碗组在受压之后会产生一定的间隙, 我们相当于预压保证了这一部分间隙, 延长碗组寿命)<br />
接着, 装上把横, 省略一千字, 锁紧, 对角锁紧, 保证力矩均衡.</p>
<p><img title="bike" src="wp-content/uploads/2011/10/bike1.png" alt="" /></p>
<p>这里, 最好跳一步, 将前后轮组装上, 快拆杆锁紧, (锁紧=安装后, 大拇指为支撑, 食指不能轻易扳动快拆杆为原则)<br />
对正轮胎, 就是把龙头扶正, 然后, 将把立螺丝锁紧, 先锁上面一颗, 再锁下方, 避免金属的移位, 分段锁紧, 既上面一颗旋转有阻力了再安装下面一颗, 不要一次暴力锁一颗螺丝.<br />
装完后, 将碗组盖也称头盖螺丝松开, 然后再压紧, 无需很大力矩(碗组盖对于车辆头管的强度并无影响, 仅仅是在把立锁死之前调节间隙, 之后, 仅仅用来防尘)<br />
车把就位, 然后将各组变速线材塞进过线座, 装上坐杆, 锁紧管夹, 挂上调车架, 开始调试准备.<br />
我们还要提前做好以下几步, 首先, 将牙盘曲柄中心的防水螺丝加固, 一般是8号内六角, 有的车辆会很松, 有的已经就绪, 大家做好即可. 这两颗螺丝锁紧力矩会非常大, 小心别打到脸, 有条件, 需要朋友帮忙扶车.<br />
接着, 15号开口扳手, 锁紧脚踏, 左边和右边丝牙旋转方向都向前, 即向你的踩动方向, 这样避免了骑行中自行松脱, 只会越踩越紧. 力矩很大, 别打到脸.<br />
下面开始调试.<br />
变速系统<br />
一般整车厂流水线, 工人只是在穿插线管之后固定螺丝, 并没有细致的调整, 我们遵循如下步骤即可.<br />
先看看线管, 线管的截取遵循以下原则, 宁可断一点不能长太多, 无论钢线的松紧如何, 变速或者刹车线端头必须牢牢顶在过线座内部, 过线座之间采用一个很小的弧线即可. 大家可以重新截线管也可以不截.<br />
完全调整法,</p>
<p><img title="bike" src="wp-content/uploads/2011/10/bike2.png" alt="" /></p>
<p>调整前, 将前后指拨的微调螺丝全部收进, 即顺时针旋转到底.<br />
前拨,<br />
将压线螺丝松开, 我们开始定位前拨, 大家很多时候调整前拨失败, 就是因为大家传统的认为前拨需要用线来控制三个盘的运动, 其实不然, 我们只需控制两个盘, 小盘呢? 我们用限位螺丝.</p>
<p>H L螺丝, 现在无论何种前拨都清晰标注了两种螺丝.<br />
这里解释一下, H即高速, L即低速, 所以, 牙盘的大盘为H侧,<br />
飞轮的最小齿, 为H侧, 大家简单的理解, 就是让你跑的更快的那一侧就是H螺丝控制的.<br />
我们首先调节L螺丝, 让前拨与链条产生如下的位置, 并且留一定余量.</p>
<p><img title="bike" src="wp-content/uploads/2011/10/bike3.png" alt="" /></p>
<p>接着, 以此种姿态去观察前拨导板与牙盘的相对位置, SHIMANO 的前拨有指示标, 其他前拨则参照它即可.</p>
<p><img title="bike" src="wp-content/uploads/2011/10/bike4.png" alt="" /></p>
<p>微转的前拨不适用以上方案, 微转的所有前拨都采用了虚拟避位, 通过外斜角达到, 即前拨需要有一定的倾斜, 并非平行于牙盘齿片, 实际宽度是肉眼观察的1.5倍, 微转前拨与牙盘齿间距离控制在3-5mm, 44T牙盘更需要注意.<br />
接着, 确定好前拨位置, 以SHIMANO前拨为例, 保证导板与牙盘平行.<br />
可以参考图一, 前拨导板是完全平行于牙盘盘片的.<br />
微转应该这样调整.</p>
<p><img title="bike" src="wp-content/uploads/2011/10/bike5.png" alt="" /></p>
<p>开始连接变速线, 其实很简单, 大家只用非常放松的状态, 连接即可. 由于小盘已经被L螺丝定位, 所以这时连接变速线, 不用承受太大的弹性, 一般线只要拉直, 不会由于太松而产生弧形, 则基本都是装好的, 然后锁紧, 你再试试, 看看是不是好的多, 如果在中盘和大盘的时候导板外侧擦链条, 你这个时候就可以把指拨的微调螺丝逆时针旋出, 前拨就慢慢抬升喽.<br />
最后, 大盘的H螺丝限位, 这里, 为什么要限位? 不限位你的链条就会越过大盘齿片, 飞上你的脚. 这里的限位有些不同, 由于前拨为了更好的上盘, 通常在指拨按到底时会做出更大的幅度, 以方便链条上盘, 我们要做的就是前拨导板内侧最大运行位置如下图, 则链条会规规矩矩走在三个盘之间.</p>
<p><img title="bike" src="wp-content/uploads/2011/10/bike6.png" alt="" /></p>
<p>大家可以多尝试几次, 前拨就这样攻克了.</p>
<p>最近天天在家打坦克世界, 自己的事情也荒废了, 今晚喝了雀巢, 睡不着了, 继续来吧.<br />
上次的前拨讲完了, 在分解后拨之前先穿插一点点的链条的处理.</p>
<p>1.链条长度.<br />
链条的具体长度, 节数根据品牌不同, 规格不同, 就不再赘述了. 来分析长度, 一般根据一些厂商的推荐, 是大盘大飞多两节, 这个可以让链条有最好的传动效率, 但是本人对此不太苟同. 由于在老款的SHIMANO和众多牙盘系统中都是采用22.32.42结构, 现在新出的9速系统都采用了最大44T的齿片, 小盘也进化为24T, 所以, 当你再次大盘大飞的时候链条可能过于绷紧, 后拨导板会回缩到达极限, 上导轮失去导向作用, 会发生部分跳动和无法上最大32T齿片的问题, 就成了自动挡, 中盘带32T上大盘之后就会自动下档位到28T, 虽然无影响, 极限档, 大家也应该很少用, 但是影响心情.</p>
<p><img title="bike" src="wp-content/uploads/2011/10/bike7.png" alt="" /></p>
<p>我衡量的长度方法是, 让后拨导板轻微受力, 图中蓝色距离, 大家多看看就明白了. 不至于擦到链条, 这样虽然链条偏长, 但是可以保证变速的柔润度, 即使SRAM这种齿感较重的类型也不会很难受了. 张力螺丝是可以调整的, 可以根据个人风格和配件本身特性调整, 但是经验要求较高, 一般建议保留厂家预留值. 比较典型的, 可以适当释放张力螺丝, 加快升档速度, 从大齿片向小齿片过渡会更快, 齿感略微增加, 噪音略微增加. SHIMANO中低端后拨反应不明显, M340之前的型号基本无效果.</p>
<p>2.链条品质<br />
个人非常偏向KMC系列的链条, 无论是8速还是9速. 谈谈自己的使用经历.</p>
<p>一条KMC 7速链条, 99年购买, 全镀镍, 型号不详, 用了7年, 不打滑, 摩擦侧都磨平了, 未拉长, 购买价格0.5元一节.<br />
KMC Z82, 从厂车拆下, 爆操几千KM, 依然安在, 未拉长.<br />
KMC Z9000, 服役三条, 均无问题, 截链销有时候会松脱, 重新上紧即可. 扳手GG黑了一条, 曰天天黑了一条, 我磨合好给他们, 我那一整个月都在磨合链条和飞轮, 蛋都碎了.<br />
KMC Z99, 体验过, 不错.<br />
KMC SUPER9 9速, 准备装, 被扳手顺利曰走.<br />
KMC X7, 准备自己装公路, 被农民曰走.<br />
KMC X9, 太贵, 我还在观望.</p>
<p>SHIMANO HG73, 安装正确, 700KM 断掉, 同时尾钩也断了, 不清楚之间关系.<br />
SHIMANO HG50, 确认不是假货, 150KM 拉长, 跳链.<br />
SHIMANO IG51, 出门, 折断, 里程, 50M, 很烦躁, 当场扔掉&#8230;&#8230;.</p>
<p>亚邦, YA9速, 50KM 折断转点的轴套, 路上一路跳, 大桥偶遇大圣, 造就了公路比山地还慢的窘境.<br />
以上是个人的经历, 没有偏重和贬低的意思, 也许我和SHIMANO 链条相克, 现在没有再用这些链条, 不要误会.</p>
<p>3.链条宽度规格和安装.<br />
SHIMANO 9速链条宽度都一致, 具体数值懒得去抄来了, 比正常8速要窄很多, 很明显.</p>
<p>KMC 9速, 大部分跟8速链条一样的宽度, Z92是八速链条, 也可以在九速工作, 缺点呢? 噪音较大, 没有其他.<br />
KMC Z99, 这个特殊, 宽度与SHIMANO 9速链条宽度一致, 与HG73几乎一致.</p>
<p>安装：8速不解释, 这个没技术含量, 用打链器装好之后, 左右轴向折一下, 避免太紧, 不能弯曲.<br />
9速链条, 基本上市面所有9速链条都是全钢材质, 包括销钉, 一般原厂的零售版链条都会有一个铁质的销钉, 黑色与其他钉子分开, 这一枚销钉可以往复, 单向截链, 注意是单向, 不能反复瞎打. 其他的全钢销钉是不能截链的, 一旦截链则失去强度, 链条可以理解为报废, 爬坡时极易断链条. 对于经常洗链条的朋友们来说, 建议拆掉原装截钉销, 换装魔术扣, KMC魔术扣兼容全部9速链条, X7链条不好拆, 镀层太厚, 其他都OK.</p>
<p>截链器, 希望大家至少购买一个保忠的截链器, 十几元的截链器伤人又伤链条, 我曾经一周折断三个. 保忠的只能针对小强度使用, 频率大的, 截链器会扛不住. 个人推荐ICETOOL的截链器, 台湾立富, 非常棒, 有一种可以换顶针的, 非常好用.</p>
<p>加一个, 大家对链条拉长感兴趣, 链条拉长后, 在停车状态时, 车架下部的链条会呈现非常大的弧线, 伴有轻度的跳链, 而且每一脚第一次出力的时候都会有虚位, 并且体会在牙盘部位, 伴有咔嚓声, 有部分严重的, 会导致牙盘跳齿. 曾经修复一台公爵500异响, 就是链条拉长&#8230;..</p>
<p>链条结束喽, 串讲一下牙盘.</p>
<p>只说一个, 安装.<br />
牙盘安装的时候, 五通丝牙一定要抹黄油, 不能干着装进去, 容易拉坏丝牙, 也会造成后期的发力异响. 安装中轴时, 要合一下丝纹, 搞坏五通丝牙, 有些情况是不能修复的. (PS一个, 我这边已经备了一套五通铣刀, 如果你的五通丝牙不太好, 可以联系我或者扳手处理, 部分五通丝牙可以挽救, 仅限铝架, 钢架确实无能为力, 刀头太贵)</p>
<p>继续, 中轴装入后, 旋紧, 不然后期异响, 方孔和花键, 牙盘孔中间要加黄油, 这个是为了顺利安装, 同时可以避免异响的, 最后锁紧防水螺丝, 工作完毕.</p>
<p>有部分新车落地后, 骑一段时间会突然发生牙盘部位异响, 大家不要急着售后, 也不要怪罪技师没有修好, 这个是正常现象, 几乎无法避免, 牙盘受力后, 应力释放, 内部间隙变化, 就会发出一些怪怪的响声. 大家先检查脚踏, 完全锁死之后, 再来拆装牙盘, 所有部分上油不要忘了, 装复, OK, 异响是不是解除了呢? 其实很简单.</p>
<p>好了, 传动系最后的一个飞轮.<br />
个人认为, 这个部件是绝对磨损的, 价格便宜, 耐操就OK.<br />
当然, 需求轻量, 外观, 参数, 齿级的可以根据自己的爱好选择.<br />
我属于出力比较暴力的, 加上体重不小, 飞轮跟着我受苦了, 现在只用最便宜的品牌.</p>
<p>好了, 更新到这里, 最后差后拨调整和刹车调整, 以及一些小部件, 最近很少来, 慢慢来吧, 争取把这个帖子写完, 大家都可以自己动手尝试一下.</p>
<p>&nbsp;</p>
<p>文章转自:  http://www.lakecn.com/bbs/forum.php?mod=viewthread&amp;tid=108926&amp;highlight=</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ritto.cn/diy-bicycle/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>MySQL主从失败, 错误Got fatal error 1236解决方法[原创]</title>
		<link>http://www.ritto.cn/mysql-error-1236/</link>
		<comments>http://www.ritto.cn/mysql-error-1236/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 08:05:41 +0000</pubDate>
		<dc:creator>ritto</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[linux
mysql]]></category>

		<guid isPermaLink="false">http://www.ritto.cn/?p=727</guid>
		<description><![CDATA[由于主服务器异外重启, 导致从报错, 错误如下:

show slave status错误:

mysql&#62; show slave status\G

<span class="readmore"><a href="http://www.ritto.cn/mysql-error-1236/" title="MySQL主从失败, 错误Got fatal error 1236解决方法[原创]">阅读全文——共2991字</a></span>]]></description>
			<content:encoded><![CDATA[<p>由于主服务器异外重启, 导致从报错, 错误如下:<br />
show slave status错误:</p>
<pre>mysql&gt; <span style="color: #0000ff;">show slave status\G</span>
Master_Log_File: mysql-bin.000288
Read_Master_Log_Pos: 627806304
Relay_Log_File: mysql-relay-bin.000990
Relay_Log_Pos: 627806457
Relay_Master_Log_File: mysql-bin.000288
<span style="color: #ff0000;">Slave_IO_Running: No</span>
Slave_SQL_Running: Yes
Exec_Master_Log_Pos: 627806304
Relay_Log_Space: 627806663</pre>
<p><span id="more-727"></span></p>
<pre>......
Last_IO_Error: <span style="color: #ff0000;">Got fatal error 1236 from master when  </span><span style="color: #ff0000;">reading </span><span style="color: #ff0000;">data from binary log:
'Client requested master to start  </span><span class="Apple-style-span" style="color: #ff0000;">replication from impossible position'</span></pre>
<p>mysql错误日志:</p>
<pre><span style="color: #0000ff;">tail /data/mysql/mysql-error.log</span>
111010 17:35:49 [ERROR] Error reading packet from server: Client requested master
 to start replication from impossible position ( server_errno=1236)
111010 17:35:49 [ERROR] <span style="color: #ff0000;">Slave I/O: Got fatal error 1236 from master when reading data
from </span><span style="color: #ff0000;">binary log: 'Client requested master to start replication from impossible
position', Error_code: 1236</span>
111010 17:35:49 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.000288',
position 627806304</pre>
<p>按照习惯, 先尝试必改position位置.</p>
<pre>mysql&gt; <span style="color: #0000ff;">stop slave;</span>
mysql&gt; <span style="color: #0000ff;">change master to master_log_file='mysql-bin.000288',master_log_pos=627625751;</span>
mysql&gt; <span style="color: #0000ff;">start slave;</span></pre>
<p>错误依旧, 接下来登陆到主服务器查看binlog日志.<br />
先按照错误点的标记去主服务器日志中查找:</p>
<pre>[root@db1 ~]# <span style="color: #0000ff;">mysqlbinlog --start-position=627655136 /data/mysql/binlog/mysql-bin.000288</span>
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#111010 13:31:19 server id 4 end_log_pos 106 Start: binlog v 4, server v 5.1.45-log
created 111010 13:31:19
# Warning: this binlog is either in use or was not closed properly.
BINLOG '
F1aTTg8EAAAAZgAAAGoAAAABAAQANS4xLjQ1LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
'/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;</pre>
<p>没有看到这个位置.</p>
<pre>[root@db1 ~]# <span style="color: #0000ff;">mysqlbinlog /data/mysql/binlog/mysql-bin.000288 &gt; test.txt</span>

less text.txt
看最后一部分
# at 627625495
#111010 16:35:46 server id 1 end_log_pos 627625631 Query thread_id=45613333
exec_time=32758 error_code=0
SET TIMESTAMP=1318289746/*!*/;
delete from freeshipping_bef_update where part='AR-4006WLM' and code=''
/*!*/;
# at <span style="color: #ff0000;"><strong>627625631</strong></span>
#111010 16:35:46 server id 1 end_log_pos <span style="color: #000000;"><strong>627625751</strong></span> Query thread_id=45613333
exec_time=32758 error_code=0
SET TIMESTAMP=1318289746/*!*/;
delete from shippingFee_special where part='AR-4006WLM'
/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;</pre>
<p>找到最接近错误标记627655136的一个position是<span style="color: #ff0000;">627625631</span>.</p>
<p>再回到slave机器上change master, 将postion指向这个位置.</p>
<pre>mysql&gt; <span style="color: #0000ff;">stop slave;</span>
Query OK, 0 rows affected (0.00 sec)

mysql&gt; <span style="color: #0000ff;">change master to master_log_file='mysql-bin.000288',master_log_pos=627625631;</span>
Query OK, 0 rows affected (0.06 sec)

mysql&gt; <span style="color: #0000ff;">start slave;</span>
Query OK, 0 rows affected (0.00 sec)</pre>
<p>再次查看</p>
<pre>mysql&gt; <span style="color: #0000ff;">show slave status\G</span>
*************************** 1. row ***************************
Slave_IO_State: Queueing master event to the relay log
Master_Host: 192.168.21.105
Master_User: rep
Master_Port: 3306
Connect_Retry: 10
Master_Log_File: mysql-bin.000289
Read_Master_Log_Pos: 25433767
Relay_Log_File: mysql-relay-bin.000003
Relay_Log_Pos: 630
Relay_Master_Log_File: mysql-bin.000289
Slave_IO_Running: Yes
Slave_SQL_Running: Yes</pre>
<p>主从同步正常了, 同样的方法修复其它slave机器.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ritto.cn/mysql-error-1236/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HP大中华区总裁孙振耀退休感言</title>
		<link>http://www.ritto.cn/hp-sunzhenyi/</link>
		<comments>http://www.ritto.cn/hp-sunzhenyi/#comments</comments>
		<pubDate>Mon, 15 Aug 2011 05:52:05 +0000</pubDate>
		<dc:creator>ritto</dc:creator>
				<category><![CDATA[生 活]]></category>

		<guid isPermaLink="false">http://www.ritto.cn/?p=749</guid>
		<description><![CDATA[从小侯兄弟的Blog上看到的这篇文章，虽然我不知道HP大中华区总裁孙振耀到底是怎样的人，不过这篇文章写的很诚恳，没有什么说教，是我见过的最好的感言之一，特意转载过来。这篇文章很长，不过值得花费一点时间和耐心看完。

一、关于工作与生活

我有个有趣的观察，外企公司多的是25-35岁的白领，40岁以上的员工很少，二三十岁的外企员工是意气风发的，但外企公司40岁附近的经理人是 很尴尬的。我见过的40岁附近的外企经理人大多在一直跳槽，最后大多跳到民企，比方说，唐骏。外企员工的成功很大程度上是公司的成功，并非个人的成功，西 门子的确比国美大，但并不代表西门子中国经理比国美的老板强，甚至可以说差得很远。而进外企的人往往并不能很早理解这一点，把自己的成功90％归功于自己 的能力，实际上，外企公司随便换个中国区总经理并不会给业绩带来什么了不起的影响。好了问题来了，当这些经理人40多岁了，他们的薪资要求变得很高，而他 们的才能其实又不是那么出众，作为外企公司的老板，你会怎么选择？有的是只要不高薪水的，要出位的精明强干精力冲沛的年轻人，有的是，为什么还要用你？

<span class="readmore"><a href="http://www.ritto.cn/hp-sunzhenyi/" title="HP大中华区总裁孙振耀退休感言">阅读全文——共17327字</a></span>]]></description>
			<content:encoded><![CDATA[<p>从小侯兄弟的Blog上看到的这篇文章，虽然我不知道HP大中华区总裁孙振耀到底是怎样的人，不过这篇文章写的很诚恳，没有什么说教，是我见过的最好的感言之一，特意转载过来。这篇文章很长，不过值得花费一点时间和耐心看完。</p>
<p>一、关于工作与生活</p>
<p>我有个有趣的观察，外企公司多的是25-35岁的白领，40岁以上的员工很少，二三十岁的外企员工是意气风发的，但外企公司40岁附近的经理人是 很尴尬的。我见过的40岁附近的外企经理人大多在一直跳槽，最后大多跳到民企，比方说，唐骏。外企员工的成功很大程度上是公司的成功，并非个人的成功，西 门子的确比国美大，但并不代表西门子中国经理比国美的老板强，甚至可以说差得很远。而进外企的人往往并不能很早理解这一点，把自己的成功90％归功于自己 的能力，实际上，外企公司随便换个中国区总经理并不会给业绩带来什么了不起的影响。好了问题来了，当这些经理人40多岁了，他们的薪资要求变得很高，而他 们的才能其实又不是那么出众，作为外企公司的老板，你会怎么选择？有的是只要不高薪水的，要出位的精明强干精力冲沛的年轻人，有的是，为什么还要用你？<span id="more-749"></span></p>
<p>从上面这个例子，其实可以看到我们的工作轨迹，二三十岁的时候，生活的压力还比较小，身体还比较好，上面的父母身体还好，下面又没有孩子，不用还 房贷，也没有孩子要上大学，当个外企小白领还是很光鲜的，挣得不多也够花了。但是人终归要结婚生子，终归会老，到了40岁，父母老了，要看病要吃药，要有 人看护，自己要还房贷，要过基本体面的生活，要养小孩……那个时候需要挣多少钱才够花才重要。所以，看待工作，眼光要放远一点，一时的谁高谁低并不能说明 什么。</p>
<p>从这个角度上来说，我不太赞成过于关注第一份工作的薪水，更没有必要攀比第一份工作的薪水，这在刚刚出校园的学生中间是很常见的。正常人大概要工 作 35年，这好比是一场马拉松比赛，和真正的马拉松比赛不同的是，这次比赛没有职业选手，每个人都只有一次机会。要知到，有很多人甚至坚持不到终点，大多数 人最后是走到终点的，只有少数人是跑过终点的，因此在刚开始的时候，去抢领先的位置并没有太大的意义。刚进社会的时候如果进500强公司，大概能拿到3k -6k/月的工资，有些特别技术的人才可能可以到8k/月，可问题是，5年以后拿多少？估计5k-10k了不起了。起点虽然高，但增幅有限，而且，后面的 年轻人追赶的压力越来越大。</p>
<p>我前两天问我的一个销售，你会的这些东西一个新人2年就都学会了，但新人所要求的薪水却只是你的一半，到时候，你怎么办？<br />
职业生涯就像一场体育比赛，有初赛、复赛、决赛。初赛的时候大家都刚刚进社会，大多数都是实力一般的人，这时候努力一点认真一点很快就能让人脱颖 而出，于是有的人二十多岁做了经理，有的人迟些也终于赢得了初赛，三十多岁成了经理。然后是复赛，能参加复赛的都是赢得初赛的，每个人都有些能耐，在聪明 才智上都不成问题，这个时候再想要胜出就不那么容易了，单靠一点点努力和认真还不够，要有很强的坚忍精神，要懂得靠团队的力量，要懂得收服人心，要有长远 的眼光……</p>
<p>看上去赢得复赛并不容易，但，还不是那么难。因为这个世界的规律就是给人一点成功的同时让人骄傲自满，刚刚赢得初赛的人往往不知道自己赢得的仅仅 是初赛，有了一点小小的成绩大多数人都会骄傲自满起来，认为自己已经懂得了全部，不需要再努力再学习了，他们会认为之所以不能再进一步已经不是自己的原因 了。虽然他们仍然不好对付，但是他们没有耐性，没有容人的度量，更没有清晰长远的目光。就像一只愤怒的斗牛，虽然猛烈，最终是会败的，而赢得复赛的人则象 斗牛士一样，不急不躁，跟随着自己的节拍，慢慢耗尽对手的耐心和体力。赢得了复赛以后，大约已经是一位很了不起的职业经理人了，当上了中小公司的总经理， 大公司的副总经理，主管着每年几千万乃至几亿的生意。</p>
<p>最终的决赛来了，说实话我自己都还没有赢得决赛，因此对于决赛的决胜因素也只能凭自己的猜测而已，这个时候的输赢或许就像武侠小说里写得那样，大 家都是高手，只能等待对方犯错了，要想轻易击败对手是不可能的，除了使上浑身解数，还需要一点运气和时间。世界的规律依然发挥着作用，赢得复赛的人已经不 只是骄傲自满了，他们往往刚愎自用，听不进去别人的话，有些人的脾气变得暴躁，心情变得浮躁，身体变得糟糕，他们最大的敌人就是他们自己，在决赛中要做的 只是不被自己击败，等着别人被自己击败。这和体育比赛是一样的，最后高手之间的比赛，就看谁失误少谁就赢得了决赛。</p>
<p>二、 根源</p>
<p>你工作快乐么？你的工作好么？</p>
<p>有没有觉得干了一段时间以后工作很不开心？有没有觉得自己入错了行？有没有觉得自己没有得到应有的待遇？有没有觉得工作像一团乱麻每天上班都是一 种痛苦？有没有很想换个工作？有没有觉得其实现在的公司并没有当初想象得那么好？有没有觉得这份工作是当初因为生存压力而找的，实在不适合自己？你从工作 中得到你想要得到的了么？你每天开心么？</p>
<p>天涯上愤怒的人很多，你有没有想过，你为什么不快乐？你为什么愤怒？</p>
<p>其实，你不快乐的根源，是因为你不知道要什么！你不知道要什么，所以你不知道去追求什么，你不知道追求什么，所以你什么也得不到。</p>
<p>我总觉得，职业生涯首先要关注的是自己，自己想要什么？大多数人大概没想过这个问题，唯一的想法只是——我想要一份工作，我想要一份不错的薪水， 我知道所有人对于薪水的渴望，可是，你想每隔几年重来一次找工作的过程么？你想每年都在这种对于工作和薪水的焦急不安中度过么？不想的话，就好好想清楚。 饮鸩止渴，不能因为口渴就拼命喝毒药。越是焦急，越是觉得自己需要一份工作，越饥不择食，越想不清楚，越容易失败，你的经历越来越差，下一份工作的人看着 你的简历就皱眉头。于是你越喝越渴，越渴越喝，陷入恶性循环。最终只能哀叹世事不公或者生不逢时，只能到天涯上来发泄一把，在失败者的共鸣当中寻求一点心 理平衡罢了。大多数人都有生存压力，我也是，有生存压力就会有很多焦虑，积极的人会从焦虑中得到动力，而消极的人则会因为焦虑而迷失方向。所有人都必须在 压力下做出选择，这就是世道，你喜欢也罢不喜欢也罢。</p>
<p>一般我们处理的事情分为重要的事情和紧急的事情，如果不做重要的事情就会常常去做紧急的事情。比如锻炼身体保持健康是重要的事情，而看病则是紧急 的事情。如果不锻炼身体保持健康，就会常常为了病痛烦恼。又比如防火是重要的事情，而救火是紧急的事情，如果不注意防火，就要常常救火。找工作也是如此， 想好自己究竟要什么是重要的事情，找工作是紧急的事情，如果不想好，就会常常要找工作。往往紧急的事情给人的压力比较大，迫使人们去赶紧做，相对来说重要 的事情反而没有那么大的压力，大多数人做事情都是以压力为导向的，压力之下，总觉得非要先做紧急的事情，结果就是永远到处救火，永远没有停歇的时候。（很 多人的工作也像是救火队一样忙碌痛苦，也是因为工作中没有做好重要的事情。）那些说自己活在水深火热为了生存顾不上那么多的朋友，今天找工作困难是当初你 们没有做重要的事情，是结果不是原因。如果今天你们还是因为急于要找一份工作而不去思考，那么或许将来要继续承受痛苦找工作的结果。</p>
<p>我始终觉得我要说的话题，沉重了点，需要很多思考，远比唐笑打武警的话题来的枯燥乏味，但是，天下没有轻松的成功，成功，要付代价。请先忘记一切的生存压力，想想这辈子你最想要的是什么？所以，最要紧的事情，先想好自己想要什么。</p>
<p>三、什么是好工作</p>
<p>当初微软有个唐骏，很多大学里的年轻人觉得这才是他们向往的职业生涯，我在清华bbs里发的帖子被这些学子们所不屑，那个时候学生们只想出国或者 去外企，不过如今看来，我还是对的，唐骏去了盛大，陈天桥创立的盛大，一家民营公司。一个高学历的海归在500强的公司里拿高薪水，这大约是很多年轻人的 梦想，问题是，每年毕业的大学生都在做这个梦，好的职位却只有500个。</p>
<p>人都是要面子的，也是喜欢攀比的，即使在工作上也喜欢攀比，不管那是不是自己想要的。大家认为外企公司很好，可是好在哪里呢？好吧，他们在比较好 的写字楼，这是你想要的么？他们出差住比较好的酒店，这是你想要的么？别人会羡慕一份外企公司的工作，这是你想要的么？那一切都是给别人看的，你干吗要活 得那么辛苦给别人看？另一方面，他们薪水福利一般，并没有特别了不起，他们的晋升机会比较少，很难做到很高阶的主管，他们虽然厌恶常常加班，却不敢不加 班，因为“你不干有得是人干”，大部分情况下会找个台湾人香港人新加坡人来管你，而这些人又往往有些莫名其妙的优越感。你想清楚了么？500强一定好么？ 找工作究竟是考虑你想要什么，还是考虑别人想看什么？</p>
<p>我的大学同学们大多数都到美国了，甚至毕业这么多年了，还有人最近到国外去了。出国真的有那么好么？我的大学同学们，大多数还是在博士、博士后、 访问学者地挣扎着，至今只有一个正经在一个美国大学里拿到个正式的教职。国内的教授很难当么？我有几个表亲也去了国外了，他们的父母独自在国内，没有人照 顾，有好几次人在家里昏倒都没人知道，出国，真的这么光彩么？就像有人说的“很多事情就像看A片，看的人觉得很爽，做的人未必。”</p>
<p>人总想找到那个最好的，可是，什么是最好的？你觉得是最好的那个，是因为你的确了解，还是因为别人说他是最好的？即使他对于别人是最好的，对于你也一定是最好的么？</p>
<p>对于自己想要什么，自己要最清楚，别人的意见并不是那么重要。很多人总是常常被别人的意见所影响，亲戚的意见，朋友的意见，同事的意见……问题 是，你究竟是要过谁的一生？人的一生不是父母一生的续集，也不是儿女一生的前传，更不是朋友一生的外篇，只有你自己对自己的一生负责，别人无法也负不起这 个责任。自己做的决定，至少到最后，自己没什么可后悔。对于大多数正常智力的人来说，所做的决定没有大的对错，无论怎么样的选择，都是可以尝试的。比如你 没有考自己上的那个学校，没有入现在这个行业，这辈子就过不下去了？就会很失败？不见得。</p>
<p>我想，好工作，应该是适合你的工作，具体点说，应该是能给你带来你想要的东西的工作，你或许应该以此来衡量你的工作究竟好不好，而不是拿公司的大 小，规模，外企还是国企，是不是有名，是不是上市公司来衡量。小公司，未必不是好公司，赚钱多的工作，也未必是好工作。你还是要先弄清楚你想要什么，如果 你不清楚你想要什么，你就永远也不会找到好工作，因为你永远只看到你得不到的东西，你得到的，都是你不想要的。<br />
可能，最好的，已经在你的身边，只是，你还没有学会珍惜。人们总是盯着得不到的东西，而忽视了那些已经得到的东西。</p>
<p>四、普通人</p>
<p>我发现中国人的励志和国外的励志存在非常大的不同，中国的励志比较鼓励人立下大志愿，卧薪尝胆，有朝一日成富成贵。而国外的励志比较鼓励人勇敢面 对现实生活，面对普通人的困境，虽然结果也是成富成贵，但起点不一样，相对来说，我觉得后者在操作上更现实，而前者则需要用999个失败者来堆砌一个成功 者的故事。</p>
<p>我们都是普通人，普通人的意思就是，概率这件事是很准的。因此，我们不会买彩票中500万，我们不会成为比尔盖茨或者李嘉诚，我们不会坐飞机掉下来，我们当中很少的人会创业成功，我们之中有30％的人会离婚，我们之中大部分人会活过65岁……</p>
<p>所以请你在想自己要什么的时候，要得“现实”一点，你说我想要做李嘉诚，抱歉，我帮不上你。成为比尔盖茨或者李嘉诚这种人，是靠命的，看我写的这 篇文章绝对不会让你成为他们，即使你成为了他们，也绝对不是我这篇文章的功劳。“王侯将相宁有种乎”但真正当皇帝的只有一个人，王侯将相，人也不多。目标 定得高些对于喜欢挑战的人来说有好处，但对于大多数普通人来说，反而比较容易灰心沮丧，很容易就放弃了。</p>
<p>回过头来说，李嘉诚比你有钱大致50万倍，他比你更快乐么？或许。有没有比你快乐50万倍，一定没有。他比你最多也就快乐一两倍，甚至有可能还不 如你快乐。寻找自己想要的东西不是和别人比赛，比谁要得更多更高，比谁的目标更远大。虽然成为李嘉诚这个目标很宏大，但你并不见得会从这个目标以及追求目 标的过程当中获得快乐，而且基本上你也做不到。你必须听听你内心的声音，寻找真正能够使你获得快乐的东西，那才是你想要的东西。<br />
你想要的东西，或者我们把它称之为目标，目标其实并没有高低之分，你不需要因为自己的目标没有别人远大而不好意思，达到自己的目标其实就是成功， 成功有大有小，快乐却是一样的。我们追逐成功，其实追逐的是成功带来的快乐，而非成功本身。职业生涯的道路上，我们常常会被攀比的心态蒙住眼睛，忘记了追 求的究竟是什么，忘记了是什么能使我们更快乐。</p>
<p>社会上一夜暴富的新闻很多，这些消息，总会在我们的心里面掀起很多涟漪，涟漪多了就变成惊涛骇浪，心里的惊涛骇浪除了打翻承载你目标的小船，并不 会使得你也一夜暴富。“只见贼吃肉，不见贼挨揍。”我们这些普通人既没有当贼的勇气，又缺乏当贼的狠辣绝决，虽然羡慕吃肉，却更害怕挨揍，偶尔看到几个没 挨揍的贼就按奈不住，或者心思活动，或者大感不公，真要叫去做贼，却也不敢。</p>
<p>我还是过普通人的日子，要普通人的快乐，至少，晚上睡得着觉。</p>
<p>五、跳槽与积累</p>
<p>首先要说明，工作是一件需要理智的事情，所以不要在工作上耍个性，天涯上或许会有人觉得你很有个性而叫好，煤气公司电话公司不会因为觉得你很有个 性而免了你的帐单。当你很帅地炒掉了你的老板，当你很酷地挖苦了一番招聘的HR，账单还是要照付，只是你赚钱的时间更少了，除了你自己，没人受损失。</p>
<p>我并不反对跳槽，但跳槽决不是解决问题的办法，而且频繁跳槽的后果是让人觉得没有忠诚度可言，而且不能安心工作。现在很多人从网上找工作，很多找 工作的网站常常给人出些馊主意，要知道他们是盈利性企业，当然要从自身盈利的角度来考虑，大家越是频繁跳槽频繁找工作他们越是生意兴隆，所以鼓动人们跳槽 是他们的工作。所以他们会常常告诉你，你拿的薪水少了，你享受的福利待遇差了，又是“薪情快报”又是“赞叹自由奔放的灵魂”。至于是否会因此让你不能安 心，你跳了槽是否解决问题，是否更加开心，那个，他们管不着。</p>
<p>要跳槽肯定是有问题，一般来说问题发生了，躲是躲不开的，很多人跳槽是因为这样或者那样的不开心，如果这种不开心，在现在这个公司不能解决，那么 在下一个公司多半也解决不掉。你必须相信，90%的情况下，你所在的公司并没有那么烂，你认为不错的公司也没有那么好。就像围城里说的，“城里的人拼命想 冲出来，而城外的人拼命想冲进去。”每个公司都有每个公司的问题，没有问题的公司是不存在的。换个环境你都不知道会碰到什么问题，与其如此，不如就在当下 把问题解决掉。很多问题当你真的想要去解决的时候，或许并没有那么难。有的时候你觉得问题无法解决，事实上，那只是“你觉得”。</p>
<p>人生的曲线应该是曲折向上的，偶尔会遇到低谷但大趋势总归是曲折向上的，而不是象脉冲波一样每每回到起点，我见过不少面试者，30多岁了，四五份 工作经历，每次多则3年，少则1年，30多岁的时候回到起点从一个初级职位开始干起，拿基本初级的薪水，和20多岁的年轻人一起竞争，不觉得有点辛苦么？ 这种日子好过么？</p>
<p>我非常不赞成在一个行业超过3年以后换行业，基本上，35岁以前我们的生存资本靠打拼，35岁以生存的资本靠的就是积累，这种积累包括人际关系， 经验，人脉，口碑……如果常常更换行业，代表几年的积累付之东流，一切从头开始，如果换了两次行业，35岁的时候大概只有5年以下的积累，而一个没有换过 行业的人至少有了10年的积累，谁会占优势？工作到2-3年的时候，很多人觉得工作不顺利，好像到了一个瓶颈，心情烦闷，就想辞职，乃至换一个行业，觉得 这样所有一切烦恼都可以抛开，会好很多。其实这样做只是让你从头开始，到了时候还是会发生和原来行业一样的困难，熬过去就向上跨了一大步，要知道每个人都 会经历这个过程，每个人的职业生涯中都会碰到几个瓶颈，你熬过去了而别人没有熬过去你就领先了。跑长跑的人会知道，开始的时候很轻松，但是很快会有第一次 的难受，但过了这一段又能跑很长一段，接下来会碰到第二次的难受，坚持过了以后又能跑一段，如此往复，难受一次比一次厉害，直到坚持不下去了。大多数人第 一次就坚持不了了，一些人能坚持到第二次，第三次虽然大家都坚持不住了，可是跑到这里的人也没几个了，这点资本足够你安稳活这一辈子了。</p>
<p>一份工作到两三年的时候，大部分人都会变成熟手，这个时候往往会陷入不断的重复，有很多人会觉得厌倦，有些人会觉得自己已经搞懂了一切，从而懒得 去寻求进步了。很多时候的跳槽是因为觉得失去兴趣了，觉得自己已经完成比赛了。其实这个时候比赛才刚刚开始，工作两三年的人，无论是客户关系，人脉，手 下，和领导的关系，在业内的名气……还都是远远不够的，但稍有成绩的人总是会自我感觉良好的，每个人都觉得自己跟客户关系铁得要命，觉得自己在业界的口碑 好得很。其实可以肯定地说，一定不是，这个时候，还是要拿出前两年的干劲来，稳扎稳打，积累才刚刚开始。<br />
你足够了解你的客户吗？你知道他最大的烦恼是什么吗？你足够了解你的老板么？你知道他最大的烦恼是什么吗？你足够了解你的手下么？你知道他最大的 烦恼是什么吗？如果你不知道，你凭什么觉得自己已经积累够了？如果你都不了解，你怎么能让他们帮你的忙，做你想让他们做的事情？如果他们不做你想让他们做 的事情，你又何来的成功？</p>
<p>六、等待</p>
<p>这是个浮躁的人们最不喜欢的话题，本来不想说这个话题，因为会引起太多的争论，而我又无意和人争论这些，但是考虑到对于职业生涯的长久规划，这是一个躲避不了的话题，还是决定写一写，不爱看的请离开吧。</p>
<p>并不是每次穿红灯都会被汽车撞，并不是每个罪犯都会被抓到，并不是每个错误都会被惩罚，并不是每个贪官都会被枪毙，并不是你的每一份努力都会得到 回报，并不是你的每一次坚持都会有人看到，并不是你每一点付出都能得到公正的回报，并不是你的每一个善意都能被理解……这个，就是世道。好吧，世道不够 好，可是，你有推翻世道的勇气么？如果没有，你有更好的解决办法么？有很多时候，人需要一点耐心，一点信心。每个人总会轮到几次不公平的事情，而通常，安 心等待是最好的办法。</p>
<p>有很多时候我们需要等待，需要耐得住寂寞，等待属于你的那一刻。周润发等待过，刘德华等待过，周星驰等待过，王菲等待过，张艺谋也等待过……看到 了他们如今的功成名就的人，你可曾看到当初他们的等待和耐心？你可曾看到金马奖影帝在街边摆地摊？你可曾看到德云社一群人在剧场里给一位观众说相声？你可 曾看到周星驰的角色甚至连一句台词都没有？每一个成功者都有一段低沉苦闷的日子，我几乎能想象得出来他们借酒浇愁的样子，我也能想象得出他们为了生存而挣 扎的窘迫。在他们一生最中灿烂美好的日子里，他们渴望成功，但却两手空空，一如现在的你。没有人保证他们将来一定会成功，而他们的选择是耐住寂寞。如果当 时的他们总念叨着“成功只是属于特权阶级的”，你觉得他们今天会怎样？</p>
<p>曾经我也不明白有些人为什么并不比我有能力却要坐在我的头上，年纪比我大就一定要当我的领导么？为什么有些烂人不需要努力就能赚钱？为什么刚刚改 革开放的时候的人能那么容易赚钱，而轮到我们的时候，什么事情都要正规化了？有一天我突然想，我还在上学的时候他们就在社会里挣扎奋斗了，他们在社会上奋 斗积累了十几二十年，我们新人来了，他们有的我都想要，我这不是在要公平，我这是在要抢劫。因为我要得太急，因为我忍不住寂寞。二十多岁的男人，没有钱， 没有事业，却有蓬勃的欲望。</p>
<p>人总是会遇到挫折的，人总是会有低潮的，人总是会有不被人理解的时候的，人总是有要低声下气的时候，这些时候恰恰是人生最关键的时候，因为大家都 会碰到挫折，而大多数人过不了这个门槛，你能过，你就成功了。在这样的时刻，我们需要耐心等待，满怀信心地去等待，相信，生活不会放弃你，机会总会来的。 至少，你还年轻，你没有坐牢，没有生治不了的病，没有欠还不起的债。比你不幸的人远远多过比你幸运的人，你还怕什么？路要一步步走，虽然到达终点的那一步 很激动人心，但大部分的脚步是平凡甚至枯燥的，但没有这些脚步，或者耐不住这些平凡枯燥，你终归是无法迎来最后的那些激动人心。</p>
<p>逆境，是上帝帮你淘汰竞争者的地方。要知道，你不好受，别人也不好受，你坚持不下去了，别人也一样，千万不要告诉别人你坚持不住了，那只能让别人获得坚持的信心，让竞争者看着你微笑的面孔，失去信心，退出比赛。胜利属于那些有耐心的人。</p>
<p>在最绝望的时候，我会去看电影《The Pursuit of Happyness》《JerryMaguire》，让自己重新鼓起勇气，因为，无论什么时候，我们总还是有希望。当所有的人离开的时候，我不失去希望， 我不放弃。每天下班坐在车里，我喜欢哼着《隐形的翅膀》看着窗外，我知道，我在静静等待，等待属于我的那一刻。</p>
<p>原贴里伊吉网友的话我很喜欢，抄录在这里：</p>
<p>每个人都希望，自己是独一无二的特殊者<br />
含着金匙出生、投胎到好家庭、工作安排到电力局拿1w月薪这样的小概率事件，当然最好轮到自己<br />
红军长征两万五、打成右派反革命、胼手胝足牺牲尊严去奋斗，最好留给祖辈父辈和别人<br />
自然，不是每个吃过苦的人都会得到回报<br />
但是，任何时代，每一个既得利益者身后，都有他的祖辈父辈奋斗挣扎乃至流血付出生命的身影<br />
羡慕别人有个好爸爸，没什么不可以<br />
问题是，你的下一代，会有一个好爸爸吗？<br />
至于问到为什么不能有同样的赢面概率？我只能问：为什么物种竞争中，人和猴子不能有同样的赢面概率？<br />
物竞天择。猴子的灵魂不一定比你卑微，但你身后有几十万年的类人猿进化积淀。</p>
<p>七、入对行跟对人</p>
<p>在中国，大概很少有人是一份职业做到底的，虽然如此，第一份工作还是有些需要注意的地方，有两件事情格外重要，第一件是入行，第二件事情是跟人。 第一份工作对人最大的影响就是入行，现代的职业分工已经很细，我们基本上只能在一个行业里成为专家，不可能在多个行业里成为专家。很多案例也证明即使一个 人在一个行业非常成功，到另外一个行业，往往完全不是那么回事情，“你想改变世界，还是想卖一辈子汽水？”是乔布斯邀请百事可乐总裁约翰·斯考利加盟苹果 时所说的话，结果这位在百事非常成功的约翰，到了苹果表现平平。其实没有哪个行业特别好，也没有哪个行业特别差，或许有报道说哪个行业的平均薪资比较高， 但是他们没说的是，那个行业的平均压力也比较大。看上去很美的行业一旦进入才发现很多地方其实并不那么完美，只是外人看不见。</p>
<p>说实话，我自己都没有发大财，所以我的建议只是让人快乐工作的建议，不是如何发大财的建议，我们只讨论一般普通打工者的情况。我认为选择什么行业 并没有太大关系，看问题不能只看眼前。比如，从前年开始，国家开始整顿医疗行业，很多医药公司开不下去，很多医药行业的销售开始转行。其实医药行业的不景 气是针对所有公司的，并非针对一家公司，大家的日子都不好过，这个时候跑掉是非常不划算的，大多数正规的医药公司即使不做新生意撑个两三年总是能撑的，大 多数医药销售靠工资撑个两三年也是可以撑的，国家不可能永远捏着医药行业不放的，两三年以后光景总归还会好起来的，那个时候别人都跑了而你没跑，那时的日 子应该会好过很多。有的时候觉得自己这个行业不行了，问题是，再不行的行业，做得人少了也变成了好行业，当大家都觉得不好的时候，往往却是最好的时候。大 家都觉得金融行业好，金融行业门槛高不说，有多少人削尖脑袋要钻进去，竞争激励，进去以后还要时时提防，一个疏忽，就被后来的人给挤掉了，压力巨大，又如 何谈得上快乐？也就未必是“好”工作了。</p>
<p>太阳能这个东西至今还不能进入实际应用的阶段，但是中国已经有7家和太阳能有关的公司在纽交所上市了，国美苏宁永乐其实是贸易型企业，也能上市， 鲁泰纺织连续10年利润增长超过50%，卖茶的一茶一座，卖衣服的海澜之家都能上市……其实选什么行业真的不重要，关键是怎么做。事情都是人做出来的，关 键是人。</p>
<p>有一点是需要记住的，这个世界上，有史以来直到我们能够预见得到的未来，成功的人总是少数，有钱的人总是少数，大多数人是一般的，普通的，不太成 功的。因此，大多数人的做法和看法，往往都不是距离成功最近的做法和看法。因此大多数人说好的东西不见得好，大多数人说不好的东西不见得不好。大多数人都 去炒股的时候说明跌只是时间问题，大家越是热情高涨的时候，跌的日子越近。大多数人买房子的时候，房价不会涨，而房价涨的差不多的时候，大多数人才开始买 房子。不会有这样一件事情让大家都变成功，发了财，历史上不曾有过，将来也不会发生。有些东西即使一时运气好得到了，还是会在别的时候别的地方失去的。</p>
<p>年轻人在职业生涯的刚开始，尤其要注意的是，要做对的事情，不要让自己今后几十年的人生总是提心吊胆，更不值得为了一份工作赔上自己的青春年华。 我的公司是个不行贿的公司，以前很多人不理解，甚至自己的员工也不理解，不过如今，我们是同行中最大的企业，客户乐意和我们打交道，尤其是在国家打击腐败 的时候，每个人都知道我们做生意不给钱的名声，都敢于和我们做生意。而勇于给钱的公司，不是倒了，就是跑了，要不就是每天睡不好觉，人还是要看长远一点。 很多时候，看起来最近的路，其实是最远的路，看起来最远的路，其实是最近的路。</p>
<p>跟对人是说，入行后要跟个好领导好老师，刚进社会的人做事情往往没有经验，需要有人言传身教。对于一个人的发展来说，一个好领导是非常重要的。所谓“好”的标准，不是他让你少干活多拿钱，而是以下三个。</p>
<p>首先，好领导要有宽广的心胸，如果一个领导每天都会发脾气，那几乎可以肯定他不是个心胸宽广的人，能发脾气的时候却不发脾气的领导，多半是非常厉 害的领导。中国人当领导最大的毛病是容忍不了能力比自己强的人，所以常常可以看到的一个现象是，领导很有能力，手下一群庸才或者手下一群闲人。如果看到这 样的环境，还是不要去的好。</p>
<p>其次，领导要愿意从下属的角度来思考问题，这一点其实是从面试的时候就能发现的，如果这位领导总是从自己的角度来考虑问题，几乎不听你说什么，这 就危险了。从下属的角度来考虑问题并不代表同意下属的说法，但他必须了解下属的立场，下属为什么要这么想，然后他才有办法说服你，只关心自己怎么想的领导 往往难以获得下属的信服。</p>
<p>第三，领导敢于承担责任，如果出了问题就把责任往下推，有了功劳就往自己身上揽，这样的领导不跟也罢。选择领导，要选择关键时刻能抗得住的领导，能够为下属的错误买单的领导，因为这是他作为领导的责任。</p>
<p>有可能，你碰不到好领导，因为，中国的领导往往是屁股决定脑袋的领导，因为他坐领导的位置，所以他的话就比较有道理，这是传统观念官本位的误区， 可能有大量的这种无知无能的领导，只是，这对于你其实是好事，如果将来有一天你要超过他，你希望他比较聪明还是比较笨？相对来说这样的领导其实不难搞定， 只是你要把自己的身段放下来而已。多认识一些人，多和比自己强的人打交道，同样能找到好的老师，不要和一群同样郁闷的人一起控诉社会，控诉老板，这帮不上 你，只会让你更消极。和那些比你强的人打交道，看他们是怎么想的，怎么做的，学习他们，然后跟更强的人打交道。</p>
<p>八、选择</p>
<p>我们每天做的最多的事情，其实是选择，因此在谈职业生涯的时候不得不提到这个话题。</p>
<p>我始终认为，在很大的范围内，我们究竟会成为一个什么样的人，决定权在我们自己，每天我们都在做各种各样的选择，我可以不去写这篇文章，去别人的 帖子拍拍砖头，也可以写下这些文字，帮助别人的同时也整理自己的思路，我可以多注意下格式让别人易于阅读，也可以写成一堆，我可以就这样发上来，也可以在 发以前再看几遍，你可以选择不刮胡子就去面试，也可以选择出门前照照镜子……每天，每一刻我们都在做这样那样的决定，我们可以漫不经心，也可以多花些心 思，成千上万的小选择累计起来，就决定了最终我们是个什么样的人。</p>
<p>从某种意义上来说我们的未来不是别人给的，是我们自己选择的，很多人会说我命苦啊，没得选择阿，如果你认为“去微软还是去IBM”“上清华还是上 北大”“当销售副总还是当厂长”这种才叫选择的话，的确你没有什么选择，大多数人都没有什么选择。但每天你都可以选择是否为客户服务更周到一些，是否对同 事更耐心一些，是否把工作做得更细致一些，是否把情况了解得更清楚一些，是否把不清楚的问题再弄清楚一些……你也可以选择在是否在痛苦中继续坚持，是否抛 弃掉自己的那些负面的想法，是否原谅一个人的错误，是否相信我在这里写下的这些话，是否不要再犯同样的错误……生活每天都在给你选择的机会，每天都在给你 改变自己人生的机会，你可以选择赖在地上撒泼打滚，也可以选择咬牙站起来。你永远都有选择。有些选择不是立杆见影的，需要累积，比如农民可以选择自己常常 去浇地，也可以选择让老天去浇地，诚然你今天浇水下去苗不见得今天马上就长出来，但常常浇水，大部分苗终究会长出来的，如果你不浇，收成一定很糟糕。</p>
<p>每天生活都在给你机会，他不会给你一叠现金也不会拱手送你个好工作，但实际上，他还是在给你机会。我的家庭是一个普通的家庭，没有任何了不起的社 会关系，我的父亲在大学毕业以后就被分配到了边疆，那个小县城只有一条马路，他们那一代人其实比我们更有理由抱怨，他们什么也没得到，年轻的时候文化大革 命，书都没得读，支援边疆插队落户，等到老了，却要给年轻人机会了。他有足够的理由象成千上万那样的青年一样坐在那里抱怨生不逢时，怨气冲天。然而在分配 到边疆的十年之后，国家恢复招研究生，他考回了原来的学校。研究生毕业，他被分配到了安徽一家小单位里，又是3年以后，国家第一届招收博士生，他又考回了 原来的学校，成为中国第一代博士，那时的他比现在的我年纪还大。生活并没有放弃他，他也没有放弃生活。10年的等待，他做了他自己的选择，他没有放弃，他 没有破罐子破摔，所以时机到来的时候，他改变了自己的人生。你最终会成为什么样的人，就决定在你的每个小小的选择之间。</p>
<p>你选择相信什么？你选择和谁交朋友？你选择做什么？你选择怎么做？……我们面临太多的选择，而这些选择当中，意识形态层面的选择又远比客观条件的 选择来得重要得多，比如选择做什么产品其实并不那么重要，而选择怎么做才重要。选择用什么人并不重要，而选择怎么带这些人才重要。大多数时候选择客观条件 并不要紧，大多数关于客观条件的选择并没有对错之分，要紧的是选择怎么做。一个大学生毕业了，他要去微软也好，他要卖猪肉也好，他要创业也好，他要做游戏 代练也好，只要不犯法，不害人，都没有什么关系，要紧的是，选择了以后，怎么把事情做好。</p>
<p>除了这些，你还可以选择时间和环境，比如，你可以选择把这辈子最大的困难放在最有体力最有精力的时候，也可以走一步看一步，等到了40岁再说，只 是到了40多岁，那正是一辈子最脆弱的时候，上有老下有小，如果在那个时候碰上了职业危机，实在是一件很苦恼的事情。与其如此不如在20多岁30多岁的时 候吃点苦，好让自己脆弱的时候活得从容一些。你可以选择在温室里成长，也可以选择到野外磨砺，你可以选择在办公室吹冷气的工作，也可以选择40度的酷热 下，去见你的客户，只是，这一切最终会累积起来，引导你到你应得的未来。</p>
<p>我不敢说所有的事情你都有得选择，但是绝大部分事情你有选择，只是往往你不把这当作一种选择。认真对待每一次选择，才会有比较好的未来。</p>
<p>九、选择职业</p>
<p>职业的选择，总的来说，无非就是销售、市场、客服、物流、行政、人事、财务、技术、管理几个大类，有个有趣的现象就是，500强的CEO当中最多 的是销售出身，第二多的人是财务出身，这两者加起来大概超过95％。现代IT行业也有技术出身成为老板的，但实际上，后来他们还是从事了很多销售和市场的 工作，并且表现出色，公司才获得了成功，完全靠技术能力成为公司老板的，几乎没有。这是有原因的，因为销售就是一门跟人打交道的学问，而管理其实也是跟人 打交道的学问，这两者之中有很多相通的东西，他们的共同目标就是“让别人去做某件特定的事情。”而财务则是从数字的层面了解生意的本质，从宏观上看待生意 的本质，对于一个生意是否挣钱，是否可以正常运作有着最深刻的认识。</p>
<p>公司小的时候是销售主导公司，而公司大的时候是财务主导公司，销售的局限性在于只看人情不看数字，财务的局限性在于只看数字不看人情。公司初期， 运营成本低，有订单就活得下去，跟客户也没有什么谈判的条件，别人肯给生意做已经谢天谢地了，这个时候订单压倒一切，客户的要求压倒一切，所以当然要顾人 情。公司大了以后，一切都要规范化，免得因为不规范引起一些不必要的风险，同时运营成本也变高，必须提高利润率，把有限的资金放到最有产出的地方。对于上 市公司来说，股东才不管你客户是不是最近出国，最近是不是那个省又在搞严打，到了时候就要把业绩拿出来，拿不出来就抛股票，这个时候就是数字压倒一切。</p>
<p>前两天听到有人说一句话觉得很有道理，开始的时候我们想“能做什么？”，等到公司做大了有规模了，我们想“不能做什么。”很多人在工作中觉得为什 么领导这么保守，这也不行那也不行，错过很多机会。很多时候是因为，你还年轻，你想的是“能做什么”，而作为公司领导要考虑的方面很多，他比较关心“不能 做什么”。</p>
<p>我并非鼓吹大家都去做销售或者财务，究竟选择什么样的职业，和你究竟要选择什么样的人生有关系，有些人就喜欢下班按时回家，看看书听听音乐，那也 挺好，但就不适合找个销售的工作了，否则会是折磨自己。有些人就喜欢出风头，喜欢成为一群人的中心，如果选择做财务工作，大概也干不久，因为一般老板不喜 欢财务太积极，也不喜欢财务话太多。先想好自己要过怎样的人生，再决定要找什么样的职业。有很多的不快乐，其实是源自不满足，而不满足，很多时候是源自于 心不定，而心不定则是因为不清楚究竟自己要什么，不清楚要什么的结果就是什么都想要，结果什么都没得到。<br />
我想，我们还是因为生活而工作，不是因为工作而生活，生活是最要紧的，工作只是生活中的一部分。我总是觉得生活的各方方面都是相互影响的，如果生 活本身一团乱麻，工作也不会顺利。所以要有娱乐、要有社交、要锻炼身体，要有和睦的家庭……最要紧的，要开心，我的两个销售找我聊天，一肚子苦水，我问他 们， 2年以前，你什么都没有，工资不高，没有客户关系，没有业绩，处于被开的边缘，现在的你比那时条件好了很多，为什么现在却更加不开心了？如果你做得越好越 不开心，那你为什么还要工作？首先的首先，人还是要让自己高兴起来，让自己心态好起来，这种发自内心的改变会让你更有耐心，更有信心，更有气质，更能包 容……否则，看看镜子里的你，你满意么？</p>
<p>有人会说，你说得容易，我每天加班，不加班老板就会把我炒掉，每天累得要死，哪有时间娱乐、社交、锻炼？那是人们把目标设定太高的缘故，如果你还 在动不动就会被老板炒掉的边缘，那么你当然不能设立太高的目标，难道你还想每天去打高尔夫？你没时间去健身房锻炼身体，但是上下班的时候多走几步可以吧， 有楼梯的时候走走楼梯不走电梯可以吧？办公的间隙扭扭脖子拉拉肩膀做做俯卧撑可以吧？谁规定锻炼就一定要拿出每天2个小时去健身房？你没时间社交，每月参 加郊游一次可以吧，周末去参加个什么音乐班，绘画班之类的可以吧，去尝试认识一些同行，和他们找机会交流交流可以吧？开始的时候总是有些难的，但迈出这一 步就会向良性循环的方向发展。而每天工作得很苦闷，剩下的时间用来咀嚼苦闷，只会陷入恶性循环，让生活更加糟糕。</p>
<p>虽然离开惠普仅有十五天，但感觉上惠普已经离我很远。我的心思更多放在规划自己第二阶段的人生，这并非代表我对惠普没有任何眷恋，主要还是想以此驱动自己往前走。</p>
<p>万科王石登珠穆朗玛峰的体验给我很多启发，虽然在出发时携带大量的物资，但是登顶的过程中，必须不断减轻负荷，最终只有一个氧气瓶和他登上峰顶。登山如此，漫长的人生又何尝不是。<br />
我宣布退休后，接到同事朋友同学的祝贺。大部分人都认为我能够在这样的职位上及年龄选择退休，是一种勇气，也是一种福气。<br />
还有一部分人怀疑我只是借此机会换个工作，当然还有一些人说我在HP做不下去了，趁此机会离开。<br />
我多年来已经习惯别人对我的说三道四，但对于好友，我还是挺关心大家是否真正理解我的想法，这也是写这篇文章的目的。<br />
由于受我父亲早逝的影响，我很早就下定决心，要在有生之年实现自己的愿望，我不要像我父亲一样，为家庭生活忙碌一辈子，临终前感伤，懊恼自己有很多没有实现的理想。<br />
一本杂志的文章提到我们在生前就应该思考自己的墓志铭，因为那代表你自己对完美人生的定义，我们应该尽可能在有生之年去实现它。<br />
我希望我的墓志铭上除了与家人及好友有关的内容外，是这样写着：<br />
1.这个人曾经服务于一家全球最大的IT公司（HP）25年，和她一起经历过数次重大的变革，看着她从以电子仪表为主要的业务变革成全球最大的IT公司。<br />
2.这个人曾经在全球发展最快的国家（中国）工作16年，并担任HP中国区总裁7年，见证及经历过中国改革开放的关键最新突破阶段，与中国一起成长。<br />
3.这个人热爱飞行，曾经是一个有执照的飞行员，累积飞行时数超过X小时，曾经在X个机场起降过。<br />
4.这个人曾经获得管理硕士学位，在领导管理上特别关注中国企业的组织行为及绩效，并且在这个领域上获得中国企业界的认可。<br />
我费时25年才总结1和2两项成果，我不知还要费时多久才能达成3和4的愿望，特别是第4个愿望需要经历学术的训练，才能将我的经验总结成知识。<br />
否则我的经验将无法有效影响及传授他人。因此重新进入学校学习，拿一个管理学位是有必要的，更何况这是我一个非常重要的愿望。<br />
另一方面，我25年的时间都花在运营(operation)的领域，兢兢业业的做好职业人士的工作，它是一份好工作，特别是在HP，这份工作也帮助我建立财务的基础，支持家庭的发展。</p>
<p>但是我不想终其一生，都陷入在运营的领域，我想象企业家一样，有机会靠一些点子(ideas)赚钱，虽然风险很高，但是值得一试，即使失败，也不枉走一回，这也是第4个愿望其中的一部份。</p>
<p>Carly Fiorina曾经对我说过“这个世界上有好想法的人很多，但有能力去实现的人很少”，2007年5月21日在北大演讲时，有人问起那些书对我影响较大， 我想对我人生观有影响的其中一本书叫“TriggerPoint”，它的主要观点是：人生最需要的不是规划，而是在适当的时机掌握机会，采取行动。<br />
我这些愿望在我心中已经酝酿一段很长的时间，开始的时候，也许一年想个一两次，过了也就忘掉，但逐渐的，这个心中的声音，愈来愈大，出现的频率也愈来愈高，当它几乎每一个星期都会来与我对话时，我知道时机已经成熟。</p>
<p>但和任何人一样，要丢掉自己现在所拥有的，所熟悉的环境及稳定的收入，转到一条自己未曾经历过，存在未知风险的道路，需要绝大的勇气，家人的支持和好友的鼓励。有舍才有得，真是知易行难，我很高兴自己终于跨出了第一步。<br />
我要感谢HP的EER提前退休优惠政策，它是其中一个关键的TriggerPoints,另一个关键因素是在去年五六月发生的事。<br />
当时我家老大从大学毕业，老二从高中毕业，在他们继续工作及求学前，这是一个黄金时段，让我们全家可以相聚一段较长的时间，我为此很早就计划休一个长假，带着他们到各地游玩。<br />
但这个计划因为工作上一件重要的事情（Mark Hurd访华）不得不取消。这个事件刺激了我必须严肃的去对待那心中的声音，我会不会继续不断的错失很多关键的机会?</p>
<p>我已经年过50，我会不会走向和我父亲一样的道路？人事部老总Charles跟我说，很多人在所有对他有利的星星都排成一列时，还是错失时机。<br />
我知道原因，因为割舍及改变对人是多么的困难，我相信大部分的人都有自己人生的理想，但我也相信很多人最终只是把这些理想当成是幻想，然后不断的为自己寻找不能实现的藉口，南非前总统曼德拉曾经说过，“与改变世界相比，改变自己更困难”，真是一针见血。<br />
什么是快乐及有意义的人生？我相信每一个人的定义都不一样，对我来说，能实现我墓志铭上的内容就是我的定义。<br />
在中国惠普总裁的位置上固然可以吸引很多的关注及眼球，但是我太太及较亲近的好友，都知道那不是我追求的，那只是为扮演好这个角色必须尽力做好的地方。</p>
<p>做一个没有名片的人士，虽然只有十多天的时间，但我发现我的脑袋里已经空出很多空间及能量，让我可以静心的为我ChapterII的新生活做细致的调研及规划。</p>
<p>我预订以两年的时间来完成转轨的准备工作，并且花多点时间与家人共处。这两年的时间我希望拿到飞行执照，拿到管理有关的硕士学位，提升英文的水平，建立新的网络，多认识不同行业的人，保持与大陆的联系。希望两年后，我可以顺利回到大陆去实现我第四个愿望。</p>
<p>毫不意外，在生活上，我发现很多需要调整的地方。<br />
二十多年来，我生活的步调及节奏，几乎完全被公司及工作所左右，不断涌出的deadline及任务驱动我每天的安排，一旦离开这样的环境，第一个 需要调整的就是要依靠自己的自律及意志力来驱动每天的活动，睡觉睡到自然醒的态度绝对不正确，放松自己，不给事情设定目标及时间表，或者对错失时间目标无 所谓，也不正确，没有年度，季度，月及周计划也不正确。</p>
<p>担任高层经理多年，已经养成交待事情的习惯，自己的时间主要花在思考，决策及追踪项目的进展情况，更多是依靠一个庞大的团队来执行具体的事项及秘书来处理很多协调及繁琐的事情。</p>
<p>到美国后，很多事情需要打800号电话联系，但这些电话很忙，常让你在waitingline上等待很长的时间，当我在等待时，我可以体会以前秘书工作辛苦的地方，但同时也提醒我自己，在这个阶段要改变态度，培养更大的耐性及自己动手做的能力。</p>
<p>生活的内容也要做出很大的调整，多出时间锻炼身体，多出时间关注家人，多出时间关注朋友，多出时间体验不同的休闲活动及飞行，一步步的，希望生活逐步调整到我所期望的轨道上，期待这两年的生活既充实又充满乐趣及意义。</p>
<p>第一个快乐的体验就是准备及参加大儿子的订婚礼，那种全心投入，不需担忧工作数字的感觉真好。同时我也租好了公寓，买好了家具及车子，陪家人在周 末的时候到Reno及Lake Tahoe玩了一趟，LakeTahoe我去了多次，但这次的体验有所不同，我从心里欣赏到它的美丽。</p>
<p>但同时我也在加紧调研的工作，为申请大学及飞行学校做准备，这段时间也和在硅谷的朋友及一些风险投资公司见面，了解不同的产业。</p>
<p>我的人生观是“完美的演出来自充分的准备”，“勇于改变自己，适应不断变化的环境，机会将不断出现”，“快乐及有意义的人生来自于实现自己心中的愿望，而非外在的掌声”。</p>
<p>我离开时，有两位好朋友送给我两个不同的祝语，Baron的是“多年功过化烟尘”，杨华的是“莫春者，风乎舞雩，咏而归”，它们分别代表了我离开惠普及走向未来的心情。</p>
<p>我总结人生有三个阶段，一个阶段是为现实找一份工作，一个阶段是为现实，但可以选择一份自己愿意投入的工作，一个阶段是为理想去做一些事情。</p>
<p>我珍惜我的福气，感激HP及同事、好朋友给我的支持，鼓励及协助，这篇文字化我心声的文章与好友分享。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ritto.cn/hp-sunzhenyi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nginx配置文件增加语法高亮</title>
		<link>http://www.ritto.cn/nginx-vim/</link>
		<comments>http://www.ritto.cn/nginx-vim/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 05:36:39 +0000</pubDate>
		<dc:creator>ritto</dc:creator>
				<category><![CDATA[Linux 相关]]></category>

		<guid isPermaLink="false">http://www.ritto.cn/?p=718</guid>
		<description><![CDATA[mkdir -p ~/.vim/syntax/

cd ~/.vim/syntax/

wget -O nginx.vim http://www.vim.org/scripts/\

<span class="readmore"><a href="http://www.ritto.cn/nginx-vim/" title="Nginx配置文件增加语法高亮">阅读全文——共232字</a></span>]]></description>
			<content:encoded><![CDATA[<pre>mkdir -p ~/.vim/syntax/
cd ~/.vim/syntax/
wget -O nginx.vim http://www.vim.org/scripts/\
download_script.php?src_id=12990
touch ~/.vim/filetype.vim
echo "au BufRead,BufNewFile /usr/local/nginx/conf/* \
set ft=nginx" &gt;&gt; ~/.vim/filetype.vim

或者配置文件下载：<a href="http://www.ritto.cn/wp-content/uploads/2011/04/nginx.zip">nginx</a></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ritto.cn/nginx-vim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ulimit到底谁说了算?</title>
		<link>http://www.ritto.cn/ulimit/</link>
		<comments>http://www.ritto.cn/ulimit/#comments</comments>
		<pubDate>Sat, 19 Feb 2011 01:02:14 +0000</pubDate>
		<dc:creator>ritto</dc:creator>
				<category><![CDATA[Linux 相关]]></category>
		<category><![CDATA[Linux 技 术]]></category>
		<category><![CDATA[ulimit]]></category>

		<guid isPermaLink="false">http://www.ritto.cn/?p=698</guid>
		<description><![CDATA[最近在用nginx+PHP FastCGI(php-fpm)配置站点(php-fpm默认的文件打开数目如果不做规定，就是系统最大数目，也就是只要修改系统数目就好了)，在最后阶段的优化过程中发现这ulimit的问题很奇怪，那就是/etc/security/limits.conf这个文件说了不算！

如下是我的配置文件

* soft nofile 65530

<span class="readmore"><a href="http://www.ritto.cn/ulimit/" title="ulimit到底谁说了算?">阅读全文——共2648字</a></span>]]></description>
			<content:encoded><![CDATA[<p>最近在用nginx+PHP FastCGI(php-fpm)配置站点(php-fpm默认的文件打开数目如果不做规定，就是系统最大数目，也就是只要修改系统数目就好了)，在最后阶段的优化过程中发现这ulimit的问题很奇怪，那就是/etc/security/limits.conf这个文件说了不算！<br />
如下是我的配置文件</p>
<pre>* soft nofile 65530
* hard nofile 65530</pre>
<p><a href="http://www.ritto.cn/wp-content/uploads/2011/02/image001.jpg"><img class="alignnone size-full wp-image-699" title="image001" src="http://www.ritto.cn/wp-content/uploads/2011/02/image001.jpg" alt="" width="528" height="174" /></a><br />
<span id="more-698"></span><br />
可以看见 软硬限制都是已经写到65530，但是重启后运行ulimit -n查看，还是默认1024<br />
再Google上查阅资料，有人说看见ulimit -n变了才算是生效，有人说得看 cat /proc/{pid}/limits |grep &#8216;Max open files&#8217;<br />
经过多方求证，发现第二种方法才是最正确的方法，这里面真复杂。<br />
根据<a href="http://www.ibm.com/developerworks/cn/linux/l-cn-ulimit/" target="_blank">IBM知识库</a>：</p>
<blockquote><p>作为临时限制，ulimit 可以作用于通过使用其命令登录的 shell 会话，在会话终止时便结束限制，并不影响于其他 shell 会话。而对于长期的固定限制，ulimit 命令语句又可以被添加到由登录 shell 读取的文件中，作用于特定的 shell 用户。</p></blockquote>
<p>这里没有提及/etc/security/limits.conf,因为这个配置文件起效必须基于pam验证，且PAM 的 limits 模块要启用。在我配置过程中，我已经都启用了，但是无论我怎么重启服务器，就是不生效。具体原因不详。<br />
例外，文章所说的ulimit是作为一种“临时限制”来存在的。我来举个例子。假设我开了一个用户root登录shell A,设置ulimit -SHn 65535,这个用户启动了程序A(比如nginx)，当用户退出shell A后A程序继续工作在65535个文件打开限制。这时候，当用户root登录到shell B,查看ulimit -n 还是1024个 查看(self是到当前程序 PID的软连接)</p>
<blockquote><p>cat /proc/self/limits |grep &#8216;Max open files&#8217;</p></blockquote>
<p>看到的是一样的。</p>
<div id="proc">下面我们来获取程序A(nginx)的pid，查看他的limits</div>
<pre>for pid in `ps aux |grep nginx |grep -v grep|awk '{print $2}'`
do
cat /proc/${pid}/limits |grep 'Max open files'
done</pre>
<p>显示</p>
<blockquote><p>Max open files 65530 65530 files<br />
Max open files 65530 65530 files<br />
Max open files 65530 65530 files<br />
Max open files 65530 65530 files</p></blockquote>
<p>可见A程序(nginx)工作限制和当前用户所在地shell的限制无必然关系。推而广之,要想真正让nginx和php5-fpm工作在最大打开文件数目模式下，编辑他们的init.d内地文件，开头加上ulimit -SHn 65535即可<br />
可是这样一两个程序还可以，要是多个程序呢？有人说写到rc.local/profile里面，我也测试了<br />
首先我在profile里面设立了自己的ulimit,重启后进入shell查看,确实是65530,/proc/self/limits也是。那么nginx的运行状况如何呢?<br />
还是用上面那个程序查看了一下,发现nginx还是工作在默认的1024限制下面，可见当前shell的ulimit和nginx工作的ulimit不相等(这种状况非常有迷惑性，误导了很多人，比如LNMP一键包就是加在profile里面的，这样的话，除非你手动登录上去重启nginx，否则他始终工作在1024的限制下面)，那么写到rc.local结果如何呢？我测试了一下,除非你的nginx在rc.local里面启动，否则还是一样的结果（甚至更糟糕,所有不以是rc.local为父进程的程序都不能获得大的文件打开数目）。</p>
<p>说道这里问题的关键在于找到所有的程序的父进程，这个父进程有大文件数目打开权限，那么他的和他派生的子进程都会有大文件数目打开权限。但是我也不可能把所有的程序都赋予超大文件打开数目，会争夺资源。所以我的解决办法是rc.local调用一个shell脚本。这个脚本赋予大文件打开数目。然后再这个文件里面重新启动nginx/php-fpm/mysql等(不是reload,是restart.)，同时为了自己在shell里面调试方便，profile里面也要设置。</p>
<p>当然这个只是折衷办法，要是能搞清/etc/security/limits.conf为何不生效就最好了。不知哪位可以解惑。</p>
<hr />
<h4 id="update1">Update:<br />
经过多次试验，好像终于有点明白了。</h4>
<p>首先/etc/security/limits.conf里面的*默认是不匹配root用户的。你需要手动指定root才能在登录ssh后看见生效。<br />
这个只在login这个动作发生的时候起作用。比如控制台登录等等。即使你修改了/etc/security/limits.conf使得通过控制台登录后看见ulimit -n生效了，但是nginx还是没有工作在那个大文件数目授权下面。因为启动nginx的时候是系统的服务管理器而不是你的会话。如果你一定要通过这种方式，你需要把nginx在你的会话里面重启一遍（不是reload 也不是reopen）nginx就能正常工作在你的大文件打开数目授权下了。</p>
<h4>所以说，最保险的做法是什么？</h4>
<p>我们把/etc/security/limits.conf恢复原状。把ulimit写在root的profile里面，这样是为了自己登录到会话后重新打开的nginx也能得到正确的授权。同时针对mysql/nginx/php-fpm/oracle等的launch程序做手脚，比如/etc/init.d/php5-fpm 的init程序做手脚。在里面加上ulimit语句，再比如自己编译的nginx 可以这样:新建一个/usr/local/bin/nginx脚本</p>
<pre>#!/bin/bash
ulimit -SHn 65535
/usr/local/nginx/sbin/nginx $*</pre>
<p>。这样可以确保万无一失。</p>
<h4>总之，判断成功与否标准是什么？</h4>
<p><strong>用以下程序检测下来的数目和你期望的相当，而不是你在任何会话里面执行ulimit -n看到的结果。</strong></p>
<pre>for pid in `ps aux |grep nginx |grep -v grep|awk '{print $2}'`
do
cat /proc/${pid}/limits |grep 'Max open files'
done</pre>
<p>转自: <a href="http://ihipop.info">http://ihipop.info</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ritto.cn/ulimit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

