Category: Web

  • ubuntu从12.04升级到14.04and安装zsh

    一直用 ubuntu 12.04 ,不敢大版本升级,问题很多还不如重装。今天尝试了一下升级到 14.04 ,效果很好。

    先安装zsh和git,同时移除之前可能的oh-my-zsh的安装。

    
    sudo apt-get install zsh git
    if [ -d ~/.oh-my-zsh ]; then
    rm -r ~/.oh-my-zsh
    fi
    

    手动安装zsh是用于Ubuntu的 sh 比较诡异,不识别 source 这个指令。装好zsh后仿OS X

    wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | zsh

    然后把shell切换成zsh,并重启计算机。

    chsh -s `which zsh`
    sudo shutdown -r 0

    参考:

    http://logicmd.net/2012/11/installing-zsh-on-ubuntu/

  • 遇到一切问题就想着用 python 来处理, 一段时间后你就是 py 程序员了

    遇到一切问题就想着用 python 来处理, 一段时间后你就是 py 程序员了

    看书就行了.
    往死里看, 然后上git往死里看源代码.
    最后在抄一次源代码.然后在自己编一下,基本上就成型了.

    必须有     大量    这个词作支撑

    心须搞     实用    价值的东西

    社区
    chinaunix
    github
    http://simple-is-better.com/news/953

  • 从事IT最重要的是什么

    最近一直在思考这个问题,因为从我第一次上网开始,接触互联网已经10年了。

    做IT什么是最重要的

    以前花很多时间在硬件设备,挂QQ,下片子,下mp3,注册邮箱,注册域名,折腾虚拟主机,装系统,写小脚本,配vpn…

    回想起来很傻X,一直在折腾IT的外围的东西,设备域名用什么软件根本不是那么重要。最后也没搞出什么名堂来。

    现在在做运维的职业和一些开发工作,本身也是很外围的东西,为开发和业务服务。遇到运维问题之后打算做点东西,首先需要有编程的知识,然后想尽办法做一个别人会用的到东西。

    需要长时间的学习,才能渐渐接进互联网最重要的 — 产品和业务。

    在互联网做事的方法上,快速迭代验证想法十分重要,一个自认为很好的想法只有在快速迭代的验证下才变得有意义。只有小的想法都难证过了,才会找到最真实客观,而又简单美丽的东西。

    那么除了工作,我的人生什么是最重要的

    罗素说过:三种简单而又极度强烈的情感支配着我的一生:对爱情的渴望、对知识的追求和对人类苦难的深切同情。

    追求感情,追求知识,追求能有一份事业,人不能浪费自己的时间,心有多宽,能做的事,能获取的知识就有多宽,幸福就有多满。当前我还处于很低的位置,因为我有很多问题无法克服,物质困扰着我,自信不够强烈,求知不够耐心,不够虚心,工作不够专心,急功近利。应无视这些阻力和恐惧,始终保持自己无知的态度,容纳更多知识及涵养,到达每一个阶段都当做新的起点。追求人性和自然的本源。

  • strace分析apache php进程执行

    看了外国人制作的排查apache网页很慢的视频顿时学习到了很多,应该多看国外的视频,链接http://www.youtube.com/watch?v=eF-p–AH37E

    这个例子介绍了有一个网页打开比其他网页要慢,telnet去测试GET请求,我这里用nginx做测试

    ➜   telnet jpuyy.com 80
    Trying 114.215.158.48...
    Connected to jpuyy.com.
    Escape character is '^]'.
    GET / HTTP/1.1
    Host: jpuyy.com
    

    这时回车一次,这样与服务器keep-alive。
    另打开一个窗口,,用pidof nginx找到此进程的pid,用lsof -p查看此pid都打开了哪些文件,同时也能看到tcp ESTABLISHED及打开的端口,这里就能确定是哪个nginx进程来处理用户请求。

    for i in `pidof nginx`; do lsof -n -p $i|grep ESTABLISHED; done
    nginx   28170 nginx   14u  IPv4            8920667      0t0     TCP 114.215.158.48:http->91.200.12.90:61110 (ESTABLISHED)
    

    在服务器上结合top,按下shift+u,输入nginx过滤只有nginx用户的进程。

    找到pid之后,用strace -p pid分析请求到底都做了什么。这里是要找网页变慢的因素,加上-r参数显示时间过程,用于查看是哪一步变慢的,-o 跟filename将输出重定向到文件中,以下是完整命令。

    strace -o file -r -p 28170

    接下来打开可以查看worker是如何工作的,打开文件,运行命令,调用系统文件,调用php。因为加了-r参数,可以看到每一步运行的时间。可以直接用awk或cut结合sort找出运行时间最长的一步,查看它是因为dns原因,还是php运行函数导致。

  • redis操作笔记

    设置key jpuyy

    127.0.0.1:6379> set jpuyy [email protected]
     OK

    选择数据库,查看数据库存量

    127.0.0.1:6379[1]> select 0
    OK
    127.0.0.1:6379> DBSIZE
    (integer) 1000004
    127.0.0.1:6379> select 1
    OK
    127.0.0.1:6379[1]> DBSIZE
    (integer) 0

    把某个key移动到另外的一个库,如库2

    127.0.0.1:6379> MOVE key_85544 2
    (integer) 1
    127.0.0.1:6379> select 2
    OK
    127.0.0.1:6379[2]> get key_85544
    "value_85544"
    127.0.0.1:6379[2]> select 0
    OK
    127.0.0.1:6379> get key_85544
    (nil)

    判断jpuyy是否存在

    127.0.0.1:6379> EXISTS jpuyy
    (integer) 1

    对key设置超时时间,前提是此key已经存在

    127.0.0.1:6379> EXPIRE jpuyy 10
    (integer) 1

    对不存在的key设置超时会返回0

    127.0.0.1:6379> EXPIRE jpuyynoexist 10
    (integer) 0

    查看一个key的生存时间

    127.0.0.1:6379> TTL key_749100
    (integer) 188

    不存在的key会返回-2

    127.0.0.1:6379> TTL key_749100134
    (integer) -2

    永久化一个key

    127.0.0.1:6379> PERSIST key_749100
    (integer) 1

    永久化的key查看过期时间会返回-1

    127.0.0.1:6379> TTL key_749100
    (integer) -1

    永久存储一个key

    取出所有的key(或部分key),生产环境绝对不能使用

    127.0.0.1:6379> keys *
    127.0.0.1:6379> KEYS key_749*

    返回一个随机的key

    127.0.0.1:6379> RANDOMKEY

    如果key的value很大,可以通过命令行输出,-n 表示 select 1

    redis-cli -n 1 -h 192.168.1.69 get g.node.match.live.key.26097 > ~/a

    删除key

    127.0.0.1:6379> del key_673907
    (integer) 1
    127.0.0.1:6379> get key_673907
    (nil)

    info命令可以查看redis运行的各种信息

    CONFIG GET *   可以查看当前生效的值

    CONFIG GET *memory*
    1) "maxmemory"
    2) "32212254720"

    config set 可以查看设置配置,不用重启即可生效

    危险动作

    清空当前db

    flushdb

    清空所有db

    flushall

    停止服务

    127.0.0.1:6379> SHUTDOWN
  • 写代码的条件总是不成熟

    有太多原因写不成代码,太可笑了

    我的电脑配置不够高
    我是用vim写还是用sublime,还是ide
    我是在线上写还是在本地写
    我的目录结构一定要在漂亮的path结构下面
    sublime在ubuntu下面没法输入中文
    我没有mac
    我的电脑没有装好环境
    我的软件版本不够高
    我要喝点水,水不好喝我想喝饮料
    我的桌子不够整洁
    我的椅子座着不舒服
    我的键盘,鼠标不好用
    我没有双屏

    。。。

    最后这就注定是一个不会写代码的浪费青春的IT从业人员