Tag: Summary

  • python map函数对list转换

    results = [‘1’, ‘2’, ‘3’]
    变为
    results = [1, 2, 3]

    使用

    results = map(int, results)

    反过来转换使用

    results = map(str, results)
  • time命令

    time命令用于计算一个命令执行的时间

    例如sleep 2运行时间是2秒钟

    /usr/bin/time sleep 2
    0.00user 0.00system 0:02.00elapsed 0%CPU (0avgtext+0avgdata 2656maxresident)k
    0inputs+0outputs (0major+211minor)pagefaults 0swaps

    time后面可以加很多参数,如-o output.txt将结果输出到文件

    /usr/bin/time -o output.txt sleep 2

    -f “%P” command 可以按需求输出cpu使用率

    /usr/bin/time -f "%P cpu percentage" find ./ -name abc

     -f “%M” command 可以按需求输出内存使用率,

    /usr/bin/time -f "%M Max Resident Set Size (Kb)" find ./ -name abc

    -f “%e” command 按秒输出命令执行的时间

    /usr/bin/time -f "%e running time (sec)" find ./ -name abc

    参考

    12 UNIX / Linux Time Command Output Format Option Examples

  • 从业的是一个圈子

    对于从业IT是一个圈子的想法,最近感觉越来越强烈。

    第一次是参加华东架构师大会(第二届),有五个讲师,主要讲的是架构设计方面的。其中竟有三个是和支付宝相关的,一个还任职于支付宝,两个离开了,他们曾经的座位就紧挨着。他们在这样的会议上相遇并不是偶然,而是必然。人从事一个行业之后,在一个方向的发展,并定要和同行合作交流,那么有共同兴趣点的人随着深入度的提升会越来越少,而他们相聚的可能性则越来越大。

    “圈子”的感受的加强是在今天参加中华架构师大会,又有新发现
    第一点发现,有一位讲师是上一次华东架构师大会的讲师,讲的东西也是上一次的东西;
    第二点发现,里面有个讲师还是支付宝的;
    第三是竟然碰到了之前的学校论坛的站长,从业比我长几年;也碰到了之前从公司跳走的同事;还有现在的同事也碰到了他以前的同事。

    大家从事的都是互联网行业,我相信以后还会在同一类会议中有更多的见面的机会。

    在回想起之前看到的博士是什么的几张图片,see http://loosky.net/2601.html and http://matt.might.net/articles/phd-school-in-pictures/,我看到的是跑在前面的人是很少很少的,这也决定了这个方向的人的圈子是如此的小。

    其实这个感受各行各业都会感觉到,那接下来要做的就是选择好一个方向,看看目标圈子里的人都在做啥,就做啥,努力到位最终就会入圈。更细化要做的就是方法,步骤。

    除了“圈子”这方面的感受,深刻感觉到IT圈子里这种隐隐的年龄或从业年限与成就的攀比,比方说谁谁谁才2X岁,就这么牛B了。比来比去就是因为IT职业的寿命有限,更新太快,面太宽广,一个人不学习,或太局限之后,很快就不知道别人说的是什么了。

  • bash while循环

    每0.01秒curl一下某网址

    while true ; do curl http://192.168.1.26/status; sleep 0.01;done

    逐行输出某日志文件

    cat 20131106_access.log1 | while read LINE; do echo $LINE; sleep 0.01 ; done

    checkCaps.sh检测CapsLock是否变化

    #!/bin/bash
    while true
    do
        stat="`/usr/bin/xset -q | grep Caps | awk '{print $4}'`"
        if [ "$stat" == "$statswap" ];then
            echo 
        else
            /usr/bin/notify-send  "Capslock changed"
        fi
        statswap=$stat
    done
  • CentOS6禁用ipv6

    1.修改/etc/sysconfig/network,添加:

    NETWORKING_IPV6=no

    2.修改/etc/hosts,将ipv6的那句本地主机名解析的也注释掉:

    #::1 localhost localhost6 localhost6.localdomain6

    3.让系统不加载ipv6相关模块,这需要修改modprobe相关设定文件,可以新建一个/etc/modprobe.d/ipv6off.conf,添加

    alias net-pf-10 off
    options ipv6 disable=1

    4.重启系统,使用如下命令确认已经生效:

    [root@test ~]# lsmod | grep -i ipv6
    [root@test ~]# ifconfig | grep -i inet6

    参考:http://www.litvip.com/499/

  • 查看路由与添加删除静态路由

    静态路由可以细化,定制网络运行方式。很多时候网络走不通,也要加静态路由,指定包的转发。

    显示当前的路由表

    root@agent-test:~# ip route show
    default via 192.168.198.2 dev eth0 
    192.168.198.0/24 dev eth0  proto kernel  scope link  src 192.168.198.137

    内核的路由表

    root@agent-test:~# route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    default         localhost       0.0.0.0         UG    0      0        0 eth0
    192.168.198.0   *               255.255.255.0   U     0      0        0 eth0

    内核的路由表,全部使用数字方式显示

    root@agent-test:~# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         192.168.198.2   0.0.0.0         UG    0      0        0 eth0
    192.168.198.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

    添加路由,格式为 ip route add {目标网络} via {ip地址} dev {设备},如192.168.3.0/24的网络从192.168.1.254走

    ip route add 192.168.3.0/24 via 192.168.1.254 dev eth0

    旧命令格式为

    route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.1.254 dev eth1

    以上命令立即生效,重启失效。永久静态路由

    如CentOS下

    #vi /etc/sysconfig/network-scripts/route-eth0

    既可以如下添加一行

    10.0.0.0/8 via 10.9.38.65

    也可以按这种格式

    ADDRESS0=192.168.0.62
    NETMASK0=255.255.255.255
    GATEWAY0=192.168.8.51
    ADDRESS1=192.168.0.71
    NETMASK1=255.255.255.255
    GATEWAY1=192.168.8.51
    ADDRESS2=192.168.1.0
    NETMASK2=255.255.255.0
    GATEWAY2=192.168.8.28

    重启网络后生效

    在Debian下,找到对应的interface,编辑/etc/network/interface

    auto eth0
    iface eth0 inet static
    address 10.9.38.76
    netmask 255.255.255.240
    network 10.9.38.64
    broadcast 10.9.38.79
    ### static routing ###
    post-up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.9.38.65
    pre-down route del -net 10.0.0.0 netmask 255.0.0.0 gw 10.9.38.65

    在启动eth0时,添加一条路由,关闭时删掉对应路由即可。

    除了路由的添加删除,可以使用ip route replace改变已有路由的属性。如

    ip route replace default via 192.168.8.33 dev eth0

    关于默认路由,在CentOS中,既可以在/etc/sysconfig/networ-scripts/ifcfg-eth0中指定gateway,也可以在/etc/sysconfig/network中指定gateway,也可以在上面的ip route add default via 192.168.8.1 dev eth0。