Blog

  • 如何防止学成一个废柴

    04年家里有了电脑,05年上网,到今年有8个年头了。

    早在07年就使用淘宝购物,使用支付宝

    08年就接触php,discuz

    毕业一年多了,从事IT,感觉快要成为一个废柴,一只脚已经站在废柴堆里了。

    IT这行,面太大了,现在搞linux,网络,每一个细小的方向都需要一大堆知识。如果转编程,又有更多的方向和路线。很早之前就听人说要精一门需要一万个小时,到现在视力下降,目标却还是在飘移。看看自己的博客,这么多分类目录,没有一个关注点。

    问题是:只允许一种选择的方向。

    已经深深的感受到:干IT如果不会编程,那永远是个二流货色。(这句话只适用于我自己)

    一方面需要尽快定位好如何去提升技术,提高自己被替代的技术壁垒,因为总有比你更年轻,更有时间精力,更能接受低价格的人去取代你;另一方面,想办法将技术转化为金钱,有金钱不光可以使生活过的好一些,还意味着可以尝试更大的梦想。

    毕业一年多以来,了解同学的情况,自然而然要进行比较。小结一下:

    各行各业都不好干,但是有兴趣确实能让人在这行走的更远

    既然没有稳定的不愁吃住的工作,那就需要有强大的应变不稳定的能力,而这些不稳定确实有压力,冒险,刺激,需要玩的起,而且离钱很近。

    最有风险的职业,也是离钱最近的,比如抢银行很有风险,但搞成了直接拿到的是现金。销售等职位,离钱最近。

    IT的技术职位离钱很远,做不到精通,还不如转行,生活不可能不需要钱。既然是青春饭,就要在青春时把青春饭吃好。

     

  • ubuntu使用google calendar indicator

    ubuntu使用google calendar indicator
    首先需要添加Atareao PPA

    $ sudo add-apt-repository ppa:atareao/atareao

    更新源信息

    $ sudo apt-get update

    安装calendar-indicator

    $ sudo apt-get install calendar-indicator
  • 使用vzdump备份,vzrestore恢复虚拟机

    vzdump和vzrestore为备份还原虚拟机的命令,具体也要看版本,以下命令参数并不直接适用所有版本。

    vzdump选项
    --compress压缩,可以压为lzo, gz格式
    --stop会将虚拟机关机
    --suspend会将虚拟机挂起
    --snapshot不会对运行中的虚拟机产生影响

    例1:将1003 vm关机备份,使用lzo压缩,备份在backup里,node选择pve3

    vzdump 1003 --quiet 1 --mode stop --compress lzo --storage backup --node pve3

    例2:将虚拟机106复制成142,并重新分配ip地址。

    vzdump --compress --suspend 106
    vzrestore /var/lib/vz/dump/vzdump-openvz-106-2013_07_24-14_40_48.tgz  142
    vzctl set 142 --hostname heyang.local --save
    vzctl set 142 --ipdel 192.168.8.49 --save
    vzctl set 142 --ipadd 192.168.8.58 --save
    vzctl start 142

     

     

     

  • CentOS更换或添加网卡

    有时更换网卡或换主板,原有的设备信息会存放在原来的磁盘。这时需要更新磁盘上对应的一些信息,有些情况下磁盘上的信息会自动更新,但自动更新不生效时,要手动操作。

    在CentOS6下,添加网卡之后,先去查看网卡的mac地址。

    cat /sys/class/net/eth1/address

    接下来编辑/etc/udev/rules.d/70-persistent-net.rules(本来会自动生成),加上一行eth1相关的信息。

    # This file was automatically generated by the /lib/udev/write_net_rules
    # program, run by the persistent-net-generator.rules rules file.
    #
    # You can modify it, as long as you keep each rule on a single
    # line, and change only the value of the NAME= key.
    # PCI device 0x8086:0x10c9 (igb)
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:a0:d1:ea:7a:68", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
    # PCI device 0x8086:0x10c9 (igb)
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:a0:d1:ea:7a:69", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

    最后到/etc/sysconfig/network-scripts/ifcfg-eth1,将hwaddr和uuid检查下,注释或删除掉都可以。

    最后reboot重启即可以用。

    udev知识:http://zh.wikipedia.org/wiki/Udev

    参考:http://superuser.com/questions/332593/how-do-you-automatically-detect-a-new-network-card-in-centos-6-redhat

  • tmpfs使用方法

    在使用df -h命令,会发现如下一条

    Filesystem                   Size  Used Avail Use% Mounted on

    tmpfs                        6.3G   13M  6.3G   1% /run/shm

    tmpfs是Linux/Unix系统上的一种基于内存的文件系统,类似于ext3, ext4。tmpfs可以使用您的内存或swap分区来存储文件。temfs主要存储暂存的文件。他有如下三个优势:
    1.动态文件系统的大小。
    2.tmpfs 的另一个主要的好处是它的速度。因为tmpfs位置为内存中,读写几乎可以是瞬间的。
    3.tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。tmpfs不具备持久性,重启后数据不保留,原因很明显,它是基于内存的。

    二./dev/shm/相关

    /dev/shm就是tmpfs的挂载点了,它的大小一般为内存的一半(CentOS)。如果要修改/dev/shm的大小为4GB,修改/etc/fstab

    tmpfs                   /dev/shm                tmpfs   defaults        0 0

    改为

    tmpfs                   /dev/shm                tmpfs   defaults, size=4G        0 0

    然后重新挂载生效

    mount -o remount /dev/shm

    三.tmpfs(/dev/shm)的应用

    既然tmpfs速度很快,那很多不怕丢的东西放内存是最好的。比如经常使用的/tmp目录,可以使用mount –bind命令将/tmp挂载成tmpfs。

    mkdir /dev/shm/tmp
    chmod 1777 /dev/shm/tmp //注意权限
    mount –bind /dev/shm/tmp /tmp

    接下来很多应用的临时文件, cache就可以放在/tmp下,如

    (1)将squid的缓存目录cache_dir放到/tmp下
    vi /etc/squid/squid.conf
    修改成
    cache_dir ufs /tmp 256 16 256
    这里的第一个256表示使用256M内存,重启一下squid服务,这样缓存目录都放在了tmpfs文件中了,速度不用说吧。

    (2)将php的session文件放在/tmp下
    对于一个访问量大的以apache php的网站,可能tmp下的临时文件都会很多,比如seesion或者一些缓存文件,那么你可以把它保存到tmpfs文件。保存seesion的方法很简单了:只要修改php.ini就行了,通过phpinfo测试文件查看你的php session存储位置,如果不在/tmp下,修改php.ini文件,修改如下:
    session.save_path = “/tmp”

    (3)将服务的socket文件放在/tmp下
    nginx.socket和mysql.sock

    至于tmpfs的其他应用,我想大家可能通过这篇文章会有所启发。再次强调下:tmpfs 数据在重新启动之后不会保留,重启tmpfs 数据会丢失,所以有必要做一些脚本做诸如加载,绑定的操作!

  • javascript跳转

    在header里写功能函数

    var secs =5;
    var URL;
    function Load(url){
    URL = url;
    for(var i=secs; i>=0; i--){
    window.setTimeout('doUpdate(' + i + ')', (secs-i) * 1000);
    }
    }
    function doUpdate(num){
    document.getElementById('timer').innerHTML= num;
    if(num == 0){ window.location = URL;}
    }

    写一个span,然后不断更新秒数

    span id="timer"
    javascript:
    Load("/login");