修改linux的/etc/timezone和/etc/localtime
[| 2012/05/13 15:16]
上周博客正式迁移,所以给服务器配置上了各种备份脚本,最近一周观察发现总是差了8个小时,非常奇怪,因为top看到的结果是没错的,今天深究了一下,看了下cron服务的环境变量:/proc/pid/environ的内容,发现是采用了莫斯科时区,一看/etc/localtime,确实是设置的莫斯科,看来是上周忘了改时区,于是改了下,重启cron进程,发现还是没变,疑惑,看了下cron的重启脚本,发现用了/etc/timezone,这个文件还是莫斯科时区,看来自己用改文件的方法不是特别的靠谱,总是有漏的地方,于是用debian
官方的命令设置了一下:dpkg-reconfigure tzdata 这个命令是文本图形界面,设置了一下,两个文件都更新了,再重启cron,看了下系统变量,发现更新了。看看明天的备份时间是不是恢复正常了。
不过为啥top看的时间时区是对的呢?
官方的命令设置了一下:dpkg-reconfigure tzdata 这个命令是文本图形界面,设置了一下,两个文件都更新了,再重启cron,看了下系统变量,发现更新了。看看明天的备份时间是不是恢复正常了。
不过为啥top看的时间时区是对的呢?
Baidu Spider 和 Yahoo! Slurp China Spider
[| 2012/05/10 08:54]
在博客迁移前好几天就把a记录的ttl设成了10分钟,目的是为了减少dns记录在spider处的缓存时间,加快迁移速度,即使是这样,在昨天还有一部分Baidu Spider在爬,到今天还有Yahoo! Slurp China的Spider在爬,处于不一致状态,有的爬虫爬新的,有的爬老的,估计建库模块会比较疑惑,导致不更新网站索引,而Google的很快就都更新到新的上面了。
差距。
差距。
Transfer-Encoding: chunked http的流式传输
[| 2012/05/08 21:31]
最近接触到一个Transfer-Encoding: chunked相关的问题,原来http在应答时,有两种方式来标示应答body的长度,一种就是用content-length方式直接指明body长度,还有一种就是chunk模式。
在这种模式下,应答正文分段发送,每个chunk由长度段和数据段组成,每个段均由\r\n结束,当服务器发送完数据后,发送一个长度为0的chunk,即:0\r\n\r\n。其中长度段为十六进制表示。
举例一个长度11的chunk:
b\r\n12345678901\r\n
chunk模式多用于结果长度未定的情况下,比如用php输出一个长字符串的时候,就默认使用的chunk模式,当然可以通过header来指定使用content-length模式。不过需要自己算出应答body的长度。
chunk模式的一个好处是可以进行分段压缩,服务器对每个chunk进行gzip压缩发送给客户端。
在这种模式下,应答正文分段发送,每个chunk由长度段和数据段组成,每个段均由\r\n结束,当服务器发送完数据后,发送一个长度为0的chunk,即:0\r\n\r\n。其中长度段为十六进制表示。
举例一个长度11的chunk:
b\r\n12345678901\r\n
chunk模式多用于结果长度未定的情况下,比如用php输出一个长字符串的时候,就默认使用的chunk模式,当然可以通过header来指定使用content-length模式。不过需要自己算出应答body的长度。
chunk模式的一个好处是可以进行分段压缩,服务器对每个chunk进行gzip压缩发送给客户端。
vi/vim设置语法搜索高亮
[| 2012/05/07 23:16]
公司的电脑vi是有搜索高亮的,我自己的几个系统都没有,不过之前用搜索功能不算太多,也就忍了,今天终于决定要也给我的加上配置。
在.vimrc里加上:set hlsearch即可。
如果想单次搜索高亮,则:match Search /word/
还有一个功能:set incsearch,这个是在搜索过程中动态高亮,就是在搜索时,随着单词的输入高亮其被找到的位置,不过作用感觉比较一般。
在.vimrc里加上:set hlsearch即可。
如果想单次搜索高亮,则:match Search /word/
还有一个功能:set incsearch,这个是在搜索过程中动态高亮,就是在搜索时,随着单词的输入高亮其被找到的位置,不过作用感觉比较一般。
nginx为js/css开启gzip压缩节省流量
[| 2012/05/07 14:26]
今天发现一个问题,发现博客的js和css都没有gzip压缩,大号js动辄就20几k,很奇怪,以为是迁移导致的某个地方忘了开,查了下,发现之前的也没开,疑惑。
我明明在ngix配置文件里加了gzip on;了,但为啥js和css没有开呢,查了下nginx文档,原来默认只对text/html类型的压缩。
加了一句:gzip_types application/x-javascript text/css
ok,现在js和css都压缩了,加载速度又提高了不少。
我明明在ngix配置文件里加了gzip on;了,但为啥js和css没有开呢,查了下nginx文档,原来默认只对text/html类型的压缩。
加了一句:gzip_types application/x-javascript text/css
ok,现在js和css都压缩了,加载速度又提高了不少。
博客迁移至台湾
[| 2012/05/06 20:09]
一个月前入了台湾vps,考察了一个月,感觉稳定性和速度上都还不错(废话,价格在那里),决定要把博客迁移过来,劳动节前动力还挺大,过了五一反而感觉一般般了。这周末搞了个监控程序,需要部署,正要往新vps上布的时候想想还是把系统重装一下,把测试用的那一坨东西都清理掉后再部署,以后再迁移的时候就不用重新布了。
系统重装后开始安装基础环境,各项都搭好后心想,都基本搞定了,一不做二不休,直接迁过来得了,于是先用rsync把程序同步过来,webserver配置配了下,然后数据库导入,跑了一下正常了,然后切域名,搞定。
然后去超市了,在麦当劳休息了一下,期间用手机访问了下,发现在线人数很高,突然想起来忘了部署我写的那个分辨爬虫的php扩展,从超市回来后把php错误日志打开,部署好php扩展,发现没装gd库,验证码出不来,装了一下gd库,搞定,速度很快。
这时看日志发现google的爬虫异常活跃,大概以4s一个的频率重新抓站,莫非是看到了换ip要重新跑跑?baidu的爬虫毫无动静,又被bs了。
系统重装后开始安装基础环境,各项都搭好后心想,都基本搞定了,一不做二不休,直接迁过来得了,于是先用rsync把程序同步过来,webserver配置配了下,然后数据库导入,跑了一下正常了,然后切域名,搞定。
然后去超市了,在麦当劳休息了一下,期间用手机访问了下,发现在线人数很高,突然想起来忘了部署我写的那个分辨爬虫的php扩展,从超市回来后把php错误日志打开,部署好php扩展,发现没装gd库,验证码出不来,装了一下gd库,搞定,速度很快。
这时看日志发现google的爬虫异常活跃,大概以4s一个的频率重新抓站,莫非是看到了换ip要重新跑跑?baidu的爬虫毫无动静,又被bs了。
debian6安装字体简易方法
[| 2012/05/06 14:05]
今天用了一个debian6的系统,啥字体也没装,用locale -a看时只有C和POSIX,没有en_US.utf8,怎么办呢,很简单,执行:dpkg-reconfigure locales (root权限),然后根据提示选择要装的字体就ok了。
mtr-可视化线路情况检测命令(延迟/丢包率检测)
[| 2012/05/06 10:59]
之前都是用ping和tracert/traceroute来检测线路的丢包率和延迟,最近发现mtr这个命令集合了以上两个命令的优势,在一个文本图形界面里traceroute出线路各个途径路由,然后连续ping各个节点,可以看出各个节点处的延迟、丢包情况,这样就能很容易看出来问题出在了网络的哪一步。
通过命令展示出的数据可以看出丢包率:Loss,已发送的包数:Snt,最后一个包的延时:Last,平均延时:Avg,最低延时:Best,最差延时:Wrst,方差(稳定性):StDev。非常强大。
按d可以切换各个视图,按一下后切换到的视图用?来表示丢包,点表示正常,不过右括号不知道什么意思。再按一下就更复杂了,还有字母数字等等。网上的资料貌似也没有提到,等有时间看看源码。不过默认视图就足够用了。
刚刚试了一下,从国内到博客服务器,丢包大户是:202.97.53.242,现在丢包率在6个点。看延迟应该是在美国的一个路由。
通过命令展示出的数据可以看出丢包率:Loss,已发送的包数:Snt,最后一个包的延时:Last,平均延时:Avg,最低延时:Best,最差延时:Wrst,方差(稳定性):StDev。非常强大。
按d可以切换各个视图,按一下后切换到的视图用?来表示丢包,点表示正常,不过右括号不知道什么意思。再按一下就更复杂了,还有字母数字等等。网上的资料貌似也没有提到,等有时间看看源码。不过默认视图就足够用了。
刚刚试了一下,从国内到博客服务器,丢包大户是:202.97.53.242,现在丢包率在6个点。看延迟应该是在美国的一个路由。
Thinkpad X200拆机及清灰
[| 2012/05/05 15:59]
又到夏天了,电脑底面的温度直线上升,准备清一下灰尘,之前清过一次,用清洁气吹了下,但没有合适的工具,拧不开风扇,只能从散热器外侧向内侧吹,效果不好,吹过一次后还变响了,这次有了全套螺丝刀,准备彻底清洁一下。
底面的螺丝很顺利,很快都拧开了,取下键盘和掌托,然后把屏幕的螺丝拧开,把屏幕下的u型塑料拿下来,开始准备拆主板,主板弄不下来,被无线网卡压住了,于是就开始拆无线网卡,结果悲剧发生了,拧下第一个螺丝后,第二个螺丝拧了几下没拧下来,因为选的十字螺丝刀头的尺寸大了点,又拧了几下,结果拧花了,鸭梨很大,搞了半天搞不下来,只能先将旁边的声卡/sd模块拆下来,腾出地方,捣鼓了半天搞不定,于是决定先搞个小刀把螺丝划出一个沟再拧,找不到小刀,去小区门口5角钱买了个,回来发现螺丝拧起来跟豆腐一样,用小刀划起来还挺硬,把小刀刀头都划平了,勉强在右边划了一个小沟,左边划了几个痕迹,螺丝刀还是吃不上力气,到了吃饭的日子,于是先吃了饭,吃完饭想起来指甲刀,指甲刀一般比较厉害,用指甲刀剪了几下左边,果然剪出一个凹槽,还是不好用力,但指甲刀也无能为力了,蛋疼,期间还试过用核桃夹夹住螺丝刀拧、用螺丝刀顶着侧边的凹槽用核桃夹敲等方法,都纹丝不动。搞了很久耐心快到极限了,之前屏幕还和主板上的无线网卡有信号线连接,现在把信号线拔掉,屏幕取下,然后换了一个稍小一点的一字螺丝刀大力拧了几下,期待奇迹的发生,结果发现螺丝真的动了。赶紧又拧了几下,终于拧下来了。
主板取下后直接就开始拆散热器了,发现cpu上的三个大螺丝是用弹簧压的,估计防止力度过大把cpu压坏,之前以为铜散热器下有空间,里面是很多灰尘,结果拆下来后发现铜散热器直接是整个和cpu/gpu接触的,没有缝隙,cpu上是导热硅脂,gpu上是导热海绵(不知道是不是这么叫,不过样子挺像),由于手头没有新的,所以不能重涂了,怕灰尘进去,急忙又把散热器拧上了。
然后拧风扇和散热器之间的三个螺丝,上次就是在拧三个螺丝中的一个的时候拧不下来放弃的,这次有了合适的螺丝刀,很快拧下来了,把风扇和散热器分离后,散热器内侧的景象展现在眼前,怪不得之前吹的没效果,原来散热器和风扇之间的那个界面上覆盖了一层黑乎乎毛毛的东西,把散热器的缝隙塞住了一半,急忙把脏东西清理出来,用清洁气吹了一下,干净了。
然后开始拧螺丝,比较顺利,无线网卡右侧那个螺丝用旁边预留槽的螺丝替换了,发现那个位置的四个螺丝都跟豆腐一样,稍微一拧就花了,别的地方都还好,看来thinkpad也开始偷工减料了,我的还是08年的tp,现在出的估计更没法用了。
拧好后用鲁大师看了看,貌似效果不错,不过压力压一会后还是比较烫,但平时使用时底座温度降下来了,爽。
底面的螺丝很顺利,很快都拧开了,取下键盘和掌托,然后把屏幕的螺丝拧开,把屏幕下的u型塑料拿下来,开始准备拆主板,主板弄不下来,被无线网卡压住了,于是就开始拆无线网卡,结果悲剧发生了,拧下第一个螺丝后,第二个螺丝拧了几下没拧下来,因为选的十字螺丝刀头的尺寸大了点,又拧了几下,结果拧花了,鸭梨很大,搞了半天搞不下来,只能先将旁边的声卡/sd模块拆下来,腾出地方,捣鼓了半天搞不定,于是决定先搞个小刀把螺丝划出一个沟再拧,找不到小刀,去小区门口5角钱买了个,回来发现螺丝拧起来跟豆腐一样,用小刀划起来还挺硬,把小刀刀头都划平了,勉强在右边划了一个小沟,左边划了几个痕迹,螺丝刀还是吃不上力气,到了吃饭的日子,于是先吃了饭,吃完饭想起来指甲刀,指甲刀一般比较厉害,用指甲刀剪了几下左边,果然剪出一个凹槽,还是不好用力,但指甲刀也无能为力了,蛋疼,期间还试过用核桃夹夹住螺丝刀拧、用螺丝刀顶着侧边的凹槽用核桃夹敲等方法,都纹丝不动。搞了很久耐心快到极限了,之前屏幕还和主板上的无线网卡有信号线连接,现在把信号线拔掉,屏幕取下,然后换了一个稍小一点的一字螺丝刀大力拧了几下,期待奇迹的发生,结果发现螺丝真的动了。赶紧又拧了几下,终于拧下来了。
主板取下后直接就开始拆散热器了,发现cpu上的三个大螺丝是用弹簧压的,估计防止力度过大把cpu压坏,之前以为铜散热器下有空间,里面是很多灰尘,结果拆下来后发现铜散热器直接是整个和cpu/gpu接触的,没有缝隙,cpu上是导热硅脂,gpu上是导热海绵(不知道是不是这么叫,不过样子挺像),由于手头没有新的,所以不能重涂了,怕灰尘进去,急忙又把散热器拧上了。
然后拧风扇和散热器之间的三个螺丝,上次就是在拧三个螺丝中的一个的时候拧不下来放弃的,这次有了合适的螺丝刀,很快拧下来了,把风扇和散热器分离后,散热器内侧的景象展现在眼前,怪不得之前吹的没效果,原来散热器和风扇之间的那个界面上覆盖了一层黑乎乎毛毛的东西,把散热器的缝隙塞住了一半,急忙把脏东西清理出来,用清洁气吹了一下,干净了。
然后开始拧螺丝,比较顺利,无线网卡右侧那个螺丝用旁边预留槽的螺丝替换了,发现那个位置的四个螺丝都跟豆腐一样,稍微一拧就花了,别的地方都还好,看来thinkpad也开始偷工减料了,我的还是08年的tp,现在出的估计更没法用了。
拧好后用鲁大师看了看,貌似效果不错,不过压力压一会后还是比较烫,但平时使用时底座温度降下来了,爽。
ubuntu使用git时:perl: warning: Setting locale failed.错误
[| 2012/05/04 16:20]
最近几个开发环境都换成ubuntu了,但随之遇到一个问题,就是用git时perl老是报错,经常报错报的把正常信息都掩盖住了,报:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "zh_CN.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
网上搜了一堆东东,都不是太有效,还是运行靠谱:
export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
如果每次启动都自动执行的话就加到bashrc或bash_profile里。
有可能需要重新安装配置相应语言包:
sudo apt-get install --reinstall locales
sudo apt-get install language-pack-en-base
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "zh_CN.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
网上搜了一堆东东,都不是太有效,还是运行靠谱:
export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
如果每次启动都自动执行的话就加到bashrc或bash_profile里。
有可能需要重新安装配置相应语言包:
sudo apt-get install --reinstall locales
sudo apt-get install language-pack-en-base